[F-Lab 모각코 챌린지] 37일차 - Java 1 ~ 8 버전 차이점 정리

F-Lab 모각코 챌린지 37일차 Java 의 1 ~ 8 버전 업데이트 차이점 정리

[F-Lab 모각코 챌린지] 37일차 - Java 1 ~ 8 버전 차이점 정리

Java 1.0 (1996)

  • 객체 지향 프로그래밍 지원 언어 Java 등장
  • Inner 클래스와 Reflection 추가.
  • JDBC (Java Database Connectivity) 추가.

예시 (Reflection):

Class<?> c = Class.forName("java.lang.String");

Java 1.2 (1998)

  • Collections Framework 추가.
  • Swing GUI 툴킷 추가.
  • Java Plugin 지원.

예시 (Collections):

List<String> list = new ArrayList<String>();
list.add("Hello");
list.add("World");

Java 1.3 (2000)

  • HotSpot JVM 도입.
  • Java Naming and Directory Interface (JNDI) 추가.

Java 1.4 (2002)

  • 정규 표현식 지원.
  • NIO (New I/O) 추가.
  • Assertions 추가.

예시 (정규 표현식):

String pattern = "w{3}\\..+\\.(com|net)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher("www.example.com");

Java 5 (2004)

  • Generics 추가.
  • Enhanced for loop 추가.
  • Auto-boxing/unboxing 추가.
  • Varargs 추가.
  • Enum 추가.

예시 (Generics과 Enhanced for loop):

List<String> list = new ArrayList<String>();
list.add("Hello");
list.add("World");
for (String str : list) {
    System.out.println(str);
}

Java 6 (2006)

  • 성능 향상.
  • 스크립팅 언어 지원.
  • Web 서비스 지원 향상.

Java 7 (2011)

  • Switch statement에 문자열 사용 가능.
  • try-with-resources 추가.
  • NIO 2 추가.

예시 (try-with-resources):

try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
}

Java 8 (2014)

  • 람다 표현식과 함수형 인터페이스 추가.
  • Stream API 추가.
  • Date and Time API 추가.

예시 (람다 표현식과 Stream API):

List<String> list = Arrays.asList("a", "b", "c");
list.stream().map(String::toUpperCase).forEach(System.out::println);


Java 에서 8 까지 발전된 모습을 확인했다

목적은 다음 글을 쓰기 위한 빌드업인데, 다음 글에서는 Java 8~17 을 다뤄 볼 예정이다