일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- JPA
- NoSQL
- nginx
- notification
- gcm 푸시 번역
- APNS
- git
- GCM
- 웹사이트성능
- 푸시
- 카프카
- 레디스
- GCM 번역
- Push
- 페이스북 번역
- 성능
- 자바스크립트
- 디자인패턴
- nginx설정
- 푸시 번역
- 카프카 트랜잭션
- kafka
- 웹사이트최적화기법
- Design Pattern
- nginx설치
- php
- 웹사이트 성능
- redis
- Java
Archives
- Today
- Total
간단한 개발관련 내용
[JAVA] JAVA 버전별 추가된 내용 정리. 본문
반응형
- JAVA1
- Collection이 없어서 Vector, Stack, Hashtable, Properties 가 컬렉션의 명명법을 따르지 않음.
- Vector, HashTable 클래스들은 동기화처리됨.
- JAVA1.1
- Reflection
- Calendar
- JAVA1.2
- Collection 프레임워크 등장
- ArrayList, HashMap 클래스들은 동기화처리하지 않고 필요한 경우에만 java.util.Collections 클래스의 동기화 메소드를 이용.
- JAVA1.3
- Hotspot-Compiler 내장...(불필요한 컴파일을 회피하고 HotCode에 Optimization을 집중..)
- Math 의 OS 의존성 때문에 (CPU명령어처리가 다르니까..) StrictMath 가 탄생했다.
- JAVA1.4
- CharSequence 가 추가되어 String, StringBuffer 등의 클래스가 구현하였다.
- JAVA1.5
- enhanced for-looop
- Generics 가 추가됨.
- Iterable 인터페이스 추가.(Collection 인터페이스가 상속받도록 결정)
- enum(열거형)이 추가됨.
- Autoboxing 이 추가됨. 기본형과 참조형 사이의 연산이 가능해짐.
- Covariant ReturnType(공변반환타입)이 추가되어 Override하는 함수의 반환타입을 SubClass 타입으로 쓸 수 있게 함.
- 메소드의 매개변수에 동적으로 할당 할 수 있게 가변인자(variable arguments)가 추가되었음.
- 가변인자는 매개변수 중 제일 마직막에 선언, 내부적으로 배열을 생성하므로 성능을 고민해야 함
- java.util.concurrent.locks 와 java.util.concurrent.atomic 패키지 추가.
- String의 contains(CharSequence s), replace(CharSequence old, CharSequence nw)가 추가되었다.
- JAVA1.6
- 상수를 선언과 동시에 초기화하지 않아도 되며, 사용하기 전에만 초기화하면 되도록 바뀌었다.
- JAVA1.7
- 정수형 리터럴 중간에 '_' under-score를 넣을 수 있게 되었다.
- 2진 리터럴이 추가되었다.
- switch 문 조건식에 문자열이 추가되었다
- '|' 기호를 이용한 multi-catch 블럭.
- try-with-resources 가 추가되었음.
- 보통 입출력관련 클래스들을 사용할 때 close()를 호출하지 않아도 try 블럭을 벗어나는 순간 자동적으로 호출이 된다.
- AutoClosable 인터페이스를 구현한 클래스여야만 한다.
- Generics 객체 생성 시 추정가능한 경우 타입을 생략할 수 있다.
- List<String> list = new ArrayList<>();
- @SafeVarargs Generics 가변인자에 사용.
- fork & join 프레임워크가 추가됨.
- '+'가 포함된 문자열이 parseInt()로 변환가능하게 된 것은 JDK1.7부터이다.
- JAVA1.8
- 람다와 스트림.
- 인터페이스에 default-method와 static-method 가 추가되었다.
- (지역클래스에서 접근하는 지역변수...)Inner-Class에서 외부클래스의 지역변수는 final을 붙여야 했으나, JAVA8부터 final을 생략할 수 있게 바뀌었다.(대신 컴파일러가 자동으로 붙여준다.)
- java.time 패키지로 개선된 날짜/시간 제공.
- java.util.Object 의 hash() 함수의 추가로 Override한 hashCode 구현 지원.
- @FunctionalInterface 함수형인터페이스 선언.
- @Native native 메소드에서 참조되는 상수 앞에 붙인다.
- @Repeatable 어노테이션을 반복해서 적용할 수 있게 한다.
- ETC
- JVM이 모든 배열의 길이를 별도로 관리하며 arrayName.length ...
- array vs arrayList
- Comparable은 기본적으로 오름차순이기 때문에, Comparator를 구현하여 정렬기준을 바꿀 수 있다.
- Generics 는 컴파일 시 형변환되어 *.class 파일에는 없는데 주된 이유는 이전 버전 호환을 위해서이다.
반응형