Java 37

17버전 이상을 고려해야될 상황

우리는 아직도 8버전을 쓰고 있다.20년도 21년도 Jetbrain이 조사한 JDK 사용 점유율 통계 (하위 링크 참조)에 따르면,Java8 버전을 사용하는 사례가 아직까지 사용율이 높다.참고링크https://www.jetbrains.com/ko-kr/lp/devecosystem-2020/java/#Java_which-versions-of-java-do-you-regularly-usehttps://www.jetbrains.com/ko-kr/lp/devecosystem-2021/java/#Java_which-versions-of-java-do-you-regularly-use왜 아직 8버전을 쓰고 있을까?가장 오랜 LTS 기간안정성과 신뢰성검증된 버전으로, 이전에 있던 버그들이 대부분 해결되었으며, 다양한 ..

Java/History 2024.12.16

Java 갑작스런 버전 변화, 왜?

첫버전 부터 8버전 까지, 현 시점에 비해 느리게 업데이트한 이유장기 지원(LTS) 버전 미발표:8 버전이전에는 자바가 장기 지원(LTS) 버전을 발표하지 않았기 때문에개발자들이 자바 버전 업데이트를 받을 때마다 호환성 문제와 다양한 변화에 대응해야 했다.이로 인해 업데이트에 대한 시간과 노력이 많이 요구되었다. 사실은 이전에도 비슷한 개념은 있었으나 Oracle과 다른 Java 제공업체들이자체적으로 JDK(Java Development Kit) 버전에 대한 지원 주기를 결정했다. 또한 Oracle은 6버전과 7버전의 상업적인 지원을 제공했으며, 각 버전에 대한 지원 주기는 제품 버전과 라이선스 유형에 따라 다르게 설정되었다. 하지만 8버전 이후로 Oracle이 LTS를 제공하기로 결정하였고 그 이후 1..

Java/History 2024.12.16

Java 17 대표 코드

Sealed 클래스 도입명시된 클래스만 상속시킬수 있다.어떤 클래스가 해당클래스를 상속받는지 쉽게 알수 있고 제한할수 있다.Sealed 된 클래스를 활용하기 위해서는 같은 모듈 혹은 같은 패키지 안에 있어야한다.// 최상위 클래스에 sealed라 선언.public sealed class Character permits Hero, Monster {}// permits로 선언된 Class만이 Character를 상속 받을 수 있다.public sealed class Hero extends Character {}public sealed class Npc extends Character // 상속 불가능// non-sealed 로 선언된 Monster 는 어떤 class 든지 상속 할 수 있다.public no..

Java/History 2024.12.16

Java 15, 16 대표 코드

성능 개선을 위한 레코드(Records) 클래스 최적화public record Person(String name, int age) { public Person { if (age 가비지 컬렉션 개선Shenandoah 가비지 컬렉터Java 15에서는 Shenandoah 가비지 컬렉터가 기본적으로 지원되기 시작했다.Shenandoah는 대규모 메모리와 대규모 힙을 가진 애플리케이션의 성능을 향상시키는 것을 목표로 하는 가비지 컬렉터다.이 가비지 컬렉터는 일부 애플리케이션에서 힙 메모리 크기가 큰 경우에 더 나은 성능을 제공할 수 있다.G1 가비지 컬렉터 개선Java 15에서는 G1(Garbage-First) 가비지 컬렉터도 여러 가지 개선을 받았다.이로써 G1 가비지 컬렉터가 더 효율적으로 ..

Java/History 2024.12.16

Java 12~14 대표 코드

instanceof 패턴 매칭(Instanceof Pattern Matching) 도입// 12 버전Object obj = "Hello, World";if (obj instanceof String) { String str = (String) obj; // 명시적으로 형변환 System.out.println(str.toUpperCase());}// 14 이후Object obj = "Hello, World";if (obj instanceof String str) { System.out.println(str.toUpperCase()); // 형변환 생략해도 가능}개선된 스위치 표현식(Switch Expressions)String dayName = switch (day) { case..

Java/History 2024.12.16

[Java/Theory]29. Lambda Expression

[Java/Theory]29. Lambda Expression출처 : https://en.wikipedia.org/wiki/Lambda_expressionhttp://jdm.kr/blog/181https://www.tutorialspoint.com/java8/java8_lambda_expressions.htm 정의 식별자(identifier)로 binding되지 않은채 정의된 함수. Java 8 부터 지원하는 표현식으로서, 함수형 프로그래밍을 도입한다. 가독성과 간편성의 목적을 두고있고, 객체지향의 큰 특징인 다형성을 활용했다. 특징 유형 정의, 괄호와 중괄호((), {}), 반환값 정의에 독립적.차후 예제에서 확인한다. 기존 사용법.123456789101112131415161718192021packag..

Java/Theory 2016.09.18