본문 바로가기
백엔드기술/개발언어

Java 버젼별 비교 정리

by RevFactory 2015. 3. 30.


1. Java 버젼별 히스토리

http://en.wikipedia.org/wiki/Java_version_history

- Java5 (2004~2009)

- Java6 (2006~2013)

- Java7 (2011~ )

- Java8 (2014~ )

- Java9 (2016예정)

- Java10 (2018예정)



2. Java 버젼별 주요 기능
2.1 Java5 (Tiger)
- Generics
- Enhanced for Loop (foreach)
- Autoboxing/Unboxing
- Type-safe Enums
- Varargs
- Static Import
- Annotions (Metadata)
- Formatted IO
- Concurrent API (java.util.concurrent)
- Thread Priority Changes
- Garbage collection ergonomics
- StringBuilder class
- StringBuilder is almost always faster than StringBuffer
- StringBuffer unsynchronized version



2.2 Java6 (Mustang)
- JAX-WS (Web Services Client)
- javax.swing.GroupLayout
- Password prompting
- Free disk-space API
- Classpath wildcards
- Annotation processing done by javac
- Solaris Dynamic Tracing (DTrace) Support)
- jhat QQL (Jmap for heap dump)
- JConsole plugin API
- Monitoring and Management for the Java Platform
- OOME Handling
- Script Langauge Support
- JDBC 4.0 API


2.3 Java7 (Dolphin)
- Garbage-First Collector
- Java Programming Language
- Binary Literals
- Strings in switch Statements
- The try-with-resource Statement
- Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking
- Underscores in Numeric Literals
- Type Inference For Generic Instance Creation
- Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods
- NIO 2.0
- Fork-Join
- Dynamic Language Support
- JDBC 4.1 API


2.4 Java8 
- Remove the Permanent Generation
Small VM
Define a standard API for Base64 encoding and decoding
Provide stronger Password-Based-Encryption (PBE) algorithm implementations in the SunJCE provider
Parallel array sorting
Interface improvements (static method, defender methods)
Functional interfaces
Lambdas
Stream
New date/time
Generic type inference improvements
Nashorn JavaScript Engine


3. Java 버젼별 성능비교

http://geeknizer.com/java-7-whats-new-performance-benchmark-1-5-1-6-1-7/#ixzz1ezWIHUc8

- Java5 -> Java6 : 18% 성능향상

- Java6 -> Java7 : 46% 성능향상

- 낮을 수록 좋은 성능




http://www.optaplanner.org/blog/2014/03/20/HowMuchFasterIsJava8.html

- Java6 -> Java7 : 평균 16% 성능향상

- Java7 -> Java8 : 평균 1% 성능향상








Java8 Reference