자바 21 새로운 기능들! (feat. 프라이머젠 반응)

0


자바가 점점 진화하고 있네요! Primeagen의 방송을 보고 인상깊었던 부분을 소개합니다.

프라이머젠 영상: https://www.youtube.com/watch?v=w87od6DjzAg&ab_channel=ThePrimeTime

https://spring.io/blog/2023/09/20/hello-java-21

위 링크를 참고했습니다.

java 21의 새로운 문법에 적합한 코드 하이라이팅을 아직 지원하지 않으니, 색이 이상해도 양해 바랍니다!

더 나은 패턴 매칭 (records, switch,

if (o instanceof ShutdownEvent(Instant instant)) {
	System.out.println("going to shutdown" + instant.toEpochMilli(...

더 나은 Math

  • BigInt의 병렬 곱셈
  • Math.divideExact

Future#state

var result = switch (future.state()) {
	case CANCELLED, FAILED -> throw new ...
    case SUCCESS -> future.resultNow();
    default -> null;
};

AutoCloseable HTTP Client

try (var http = HttpClient.newHttpClient()) {
	...
}

프라이머젠: That's pretty cool!

더 나아진 String

new StringBuilder()
.repeat("-", 10)
.toString();

...

Character.isEmoji(cp)

Sequenced Collection

LinkedHashMap, List ... 등의 collection들이 공통 조상이 없었는데 이제는 있다고 합니다!

SequencedCollection을 사용하면 됩니다!

var list = LinkedHashSet.<String>newLinkedHashSet(100);
if (list instanceof SequencedCollection<String> sequencedCollection) {
	sequencedCollection.add("ciao@");
	sequencedCollection.add("ciao!");
	sequencedCollection.add("ciao#");
	sequencedCollection.add("ciao$");
	sequencedCollection.add("ciao");
	sequencedCollection.addFirst("ciao%");
    
	sequencedCollection.getFirst("ciao%");
}

프라이머젠: 문법이 정신 나갔네

Virtual Threads and Project Loom

try(var executor = Executors.newVirtualThreadPerTaskExecutor()) {
	try ...

프라이머젠: 사랑한다 룸!

프라이머젠: 당신에게!!! 대충 최소 몇십년 전에 이미 있던 새로운 컨셉의 쓰레드를 소개합니다!!!! setTimeout? 1995년에 있지 않았을까??

결론

프라이머젠: 나 자바를 사랑하고 싶어. 아니 사실 별로 신경쓰지 않아 솔직히... 그래도 자바가 계속 뭔가 계속 나아지려는 게 좋아. 그러면 많은 사람들의 삶이 더 나아지거든...

읽어주셔서 감사합니다!

0개의 댓글