java

Android에서 Base64 URL safe encode

Base64로 인코딩된 문자열을 URL에 담아서보내는 경우가 있다. 이 때 URL에서 사용되는 +, / 문자를 -, _로 치환시키는 등의 처리를 하게 되는데 이런 방식이 Base64 URL Encoding이다. Java에서는 Java 8부터 API로 제공된다. https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html java.util.Base64 클래스 getUrlEncoder() 메서드를 호출해서 Base64.Encoder 객체를 가져오는 방법으로 사용한다. 안드로이드에서는 API 26부터 지원된다. https://developer.android.com/reference/java/util/Base64.html 그렇다면 min sdk 버전이 26 미만이면 외부 라이브러리를 […]

Android에서 Base64 URL safe encode Read More »

Float/Double형의 값을 다룰 때 주의할 점 (NaN)

아래 코드를 실행하면 콘솔에는 NaN이 출력된다. double x = 0.0; double y = 0.0; double num = x/y; System.out.println(num); // NaN 출력 이렇게 연산 결과가 NaN(Not-a-Number)이 되는 경우에 대해서는 별도의 처리를 해주어야 한다. 그렇다면 그 값이 Double.NaN과 같은지 비교하면 될까? System.out.println(num == Double.NaN); 위 코드는 false를 출력한다. 그런데 아래 코드는 true를 출력한다. System.out.println(num.equals(Double.NaN)); 사실 어떤

Float/Double형의 값을 다룰 때 주의할 점 (NaN) Read More »

Collections.addAll

오늘 문득 이게 궁금해졌다. 종종 List에 다른 원소들을 추가하는 코드를 보면 list.addAll(otherElements) 이런 식이 아니라 Collections.addAll(list, otherElements) 이런 식으로 되어있는 경우들이 있다. 전에는 똑같은 역할을 하는 메서드가 Collections에도 있나보다 하고 지나갔었는데, 오늘은 왠지 똑같은 메서드를 왜 굳이 따로 집어넣어놨을까 하는 생각이 들었다. addAll. 특별할 것 없는 메서드이다. 그런데 왜 Collections에 따로 만들어뒀을까? Collections.binarySearch 같은 뭔가

Collections.addAll Read More »