[F-Lab 모각코 챌린지] 37일차 - Java 1 ~ 8 버전 차이점 정리
F-Lab 모각코 챌린지 37일차 Java 의 1 ~ 8 버전 업데이트 차이점 정리
![[F-Lab 모각코 챌린지] 37일차 - Java 1 ~ 8 버전 차이점 정리](/content/images/size/w1200/2023/07/---_---_----1.png)
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 을 다뤄 볼 예정이다