본문 바로가기

프로그래밍/Java

(4)
[Java] JDK 버전별 차이점 정리 (1.5~17) ※ 2021년 11월 26일에 작성된 글입니다.JDK 1.5추가된 기능GenericMetadataAutoboxing/unboxingEnumerationsVarargsEnhanced for each loopImproved semantics of execution for multi-threaded Java programsStatic imports표준 라이브러리 개선Automatic stub generation for RMI objectsSwingThe concurrency utilities in package java.util.concurrentScanner class for parsing data from various input streams and buffersJDK 1.6Support for olde..
[Java] Pattern Matching for instanceof ※ 2021년 11월 23일에 작성된 글입니다.Pattern Matching for instanceofinstanceof에서 객체 타입 확인뿐만 아니라 캐스팅까지 할 수 있다.ReleaseJDK 14: previewJDK 15: second previewJDK 16JEP 394 Pattern Matching for instanceof코드로 비교해보자Beforeif (animal instanceof Cat) { Cat cat = (Cat) animal; cat.meow();} else if (animal instanceof Dog) { Dog dog = (Dog) animal; dog.woof();}instanceof를 이용해 객체 타입을 확인하고 추가로 캐스팅을 해줘야 했다.Afte..
[Java] Switch Expression ※ 2021년 11월 23일에 작성된 글입니다.🕹 Switch Expressionswitch를 명령문(statement) 뿐만 아니라 표현식(expression)으로도 사용할 수 있도록 확장JDK 12, 13에서 preview, JDK 14에서 standard로 제공된다.JEP 361 Switch Expressions코드로 비교해보자Beforeswitch (day) { case MONDAY: case FRIDAY: case SUNDAY: System.out.println(6); break; case TUESDAY: System.out.println(7); break; case THURSDAY: case SATURDAY: ..
[Java] 레코드(Record) ※ 2021년 11월 21일에 작성된 글입니다.레코드(Record)변경할 수 없는 데이터의 투명한 전달자 역할을 하는 클래스Kotlin의 data class와 비슷한 것이라고 보면 될 것 같다.JDK 14에서 preview로 도입되었으며, JDK 16에서 정식으로 도입되었다.JEP 395 Records코드로 비교해보자Beforeclass Point { private final int x; private final int y; Point(int x, int y) { this.x = x; this.y = y; } int x() { return x; } int y() { return y; } public boolean equals(Object o)..