백엔드기술/개발언어
Java 버젼별 비교 정리
RevFactory
2015. 3. 30. 15:51
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
- http://openjdk.java.net/projects/jdk8/features#117
- http://www.techempower.com/blog/2013/03/26/everything-about-java-8/
- http://ttux.net/post/java-8-new-features-release-performance-code/
- http://docs.oracle.com/javase/tutorial/java/generics/genTypeInference.html
- http://java.dzone.com/articles/java-8-permgen-metaspace
- http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Lambda-QuickStart/index.html
- http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html
- https://blog.codecentric.de/en/2013/10/java-8-first-steps-lambdas-streams/
- http://zeroturnaround.com/rebellabs/java-8-explained-default-methods/
- http://java.dzone.com/articles/understanding-java-8-streams-1
- http://stackoverflow.com/questions/16635398/java-8-iterable-foreach-vs-foreach-loop
- http://blog.credera.com/technology-insights/java/java-8-part-1-lamdas-streams-functional-interfaces/
- http://blog.credera.com/technology-insights/java/java-8-part-2-nashorn/
- http://www.journaldev.com/2389/java-8-features-for-developers-lambdas-functional-interface-stream-and-time-api
- http://geekmonkey.org/articles/24-a-new-date-and-time-api-for-jdk-8
- http://howtodoinjava.com/2013/05/15/date-and-time-api-changes-in-java-8-lambda/