자바 8 이전에 사용하던 java.util.Date 클래스는 mutable 하기 때문에 thread-safe 하지 않다. Date인데 시간까지 다뤄서 이름이 적절하지 않다. 월이 0부터 시작하거나..int 타입이어서 음수값도 올 수 있기 때문에 타입 안정성이 없어서 버그 발생 가능성이 높다.
Date date = new Date();
long time = date.getTime();
System.out.println(date);
System.out.println(time);
// 똑같은 인스턴스인데 인스턴스의 데이터가 변경되었다.
Thread.sleep(1000 * 3);
Date after3Seconds = new Date();
System.out.println(after3Seconds);
after3Seconds.setTime(time);
System.out.println(after3Seconds);
또 이상한 건.. Date 클래스에서 getTime()을 하면 long이 나오고, Calander 클래스에서 getTime()을 하면 Date가 나온다..
Arrays.parallelSort()를 사용해서 Fork/Join 프레임워크를 사용해서 배열을 병렬로 정렬하는 기능을 제공한다.
int size = 1500;
int[] numbers = new int[size];
Random random = new Random();
IntStream.range(0, size).forEach(i -> numbers[i] = random.nextInt());
long start = System.nanoTime();
Arrays.sort(numbers);
System.out.println("serial sorting took " + (System.nanoTime() - start));
IntStream.range(0, size).forEach(i -> numbers[i] = random.nextInt());
start = System.nanoTime();
Arrays.parallelSort(numbers);
System.out.println("parallel sorting took " + (System.nanoTime() - start));