티스토리 뷰

코니79 IT 정보

java 버전/버젼 변천사 및 성능향상

코니79 코니와함께 2018.03.13 15:18

1. Java 버젼별 히스토리

1) 초기 자바 ~ JDK 1.0

- 1991년, OAK 발표: GE사의 요청으로, 썬마이크로 시스템즈에서 C++의 단점을 극복하고자 만든 언어.

  메모리 할당/해제의 어려움과 다중상속으로 인한 실수유발을 극복하려고 했다.

- 1996년, JDK 1.0발표 :  언어 이름을 자바라 바꾸고, Java Virtual Machine 1.0을 발표했다. Java Applet도 이때 처음 도입.


2) JDK1.1

- 1997년 : RMI, JDBC, reflection, JIT,Inner Class 개념이 포함되었다.


3) JDK 1.2

- 1998년 Java SE 1.2, ME 1.2, EE 1.2 발표 

- 자바를 세가지 버전으로 나눴다. Swing이 SE에 포함, Corba IDL(이종기기간 함수호출 스펙), Collection Framework 포함


4) JDK 1.3 

- 2000년도

- HotSpot(Sun에서 만든 JIT구현), JNDI(디렉토리랑 이름으로 원하는 서비스찾는것) 포함


5) JDK 1.4 

- 2002년도

- JCP(Java Community Process)에 의해서 오픈소스 정책으로 자바가 관리되기 시작한 버전.

- Java 2 Security 모델의 확립(Sandbox)

- Java Web Start포함 (Java Applet이 브라우저에서 돌아가는 것과 다르게, 외부 sandbox에서 동작)

- Language: assert 도입

- API :  Regular Expression, Assert keyword, Security 2 version(현재 security model), Non Blocking IO(NIO)


6) JDK 1.5

- 2004년

- 기능적으로 가장 많은 변화가 생긴버전 (Generics가 가장 대표적)

- LanguageI: Generics , annotation, auto boxing, enum,vararg ,foreach, static imports 도입

- API : java.util.concurrent API, scanner class


7) JDK 1.6

- 2006년도

- 기능에 별 차이 없슴 - 보안, 성능강화 주력. 

- JVM/Swing에 있어 많은 Performance 향상(synchronization, compiler, GC,start-up time)

- G1(Garbage First) GC도입.


8) JDK 1.7

- 2011 

- JVM : Dynamic Language support (invokedynamic - new byte operation)

- Language : Switch에서 String, try-resource, generics에서 타입추론, 숫자에서 underscore사용

- API:Concurrency 강화, NIO 강화, sort강화, crypto강화, GPU강화, 

- JavaFX가 기본으로 포함

- 안정적인 ARM지원



9) JDK 1.8

- 2014

- 오라클로 인수된 후 첫번째 버전

-  JDK 1.5이후 가장 큰 언어적 변화(Lambda및 함수형프로그래밍,default method)이며 러닝커브가 크다.

- JEP에 의해서 새로운 기능들이 발의되기 시작.

- Language : Lambda expression, Default Method Interface, functional programming for MapReduce style 지원, default method이용한 다중상속지원,메소드 참조

- API : Nashorn (JS엔진), new Date and Time API, stream api,Collection에 대한 함수형화 (Interface에 default가 생김으로서 가능)

- 병철처리에 접합한 구조로 진화


10) JDK 1.9

- 2016 예정

- Modular System (Jigsaw)지원예정

- Money API지원예정

- Java Shell지원예정

- 변수에 대한 타입 추론 지원예정(var,val)

- OpenCL이용한 자동화된 병렬 프로그래밍 지원예정


- value 타입 지원예정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% 성능향상


댓글
댓글쓰기 폼
광고위치
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
72,929
Today
4
Yesterday
214
링크
«   2018/10   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
글 보관함