SDK ⊃ JDK
JDK = JRE + Development Tools
JRE = JVM + Library
SDK(Software Development Kit)
JDK(Java Development Kit)
JRE(Java Runtime Environment)
Development Tools
JVM(Java Virtual Machine)
Library
람다식은 함수의 이름이 없기 때문에 익명함수로 부른다. 메소드를 가진 객체를 형성하는 형식
// 기존 처리 로직
for (String value : collection){
System.out.println(value);
}
// 람다식표현 로직
collection.forEach(value -> System.out.println(value));
참조의 경우, 기존 람다식 대신 매개체::메소드명 으로 표현 가능하다.
메소드 참조
// 람다식표현 기본 로직
boolean isCheck = list.stream().anyMatch(u -> User.isCheckUser(u));
// 메소드 참조로직
boolean isCheck = list.stream().anyMatch(User::isCheckUser);
인스턴스 메소드 참조
User user = new User();
boolean isUserName = list.stream().anyMatch(user::isUserName);
생성자 참조
Stream<User> stream = list.stream().map(User::new);
컬렉션(배열)의 요소를 하나식 참조하여 람다식으로 처리할 수 있도록 해주는 반복자.
기존에는 컬렉션에 저장된 데이터에 접근하기 위해서는 반복문이나 반복자(iterator)를 사용하였는데 코드도 길고 가독성이 떨어졌던 것을 개선한 것이 스트림API
String[] arr = new String[]{"넷", "둘", "셋", "하나"};
// 배열에서 스트림 생성
Stream<String> stream1 = Arrays.stream(arr);
stream1.forEach(e -> System.out.print(e + " "));
System.out.println();
// 배열의 특정 부분만을 이용한 스트림 생성
Stream<String> stream2 = Arrays.stream(arr, 1, 3); // 1< x <=3
stream2.forEach(e -> System.out.print(e + " "));
결과
: 넷 둘 셋 하나
둘 셋
Calendar 클래스(JDK제공, 초기 날짜 계산 클래스)
Calendar클래스 | |
---|---|
특징 1 | 너무 복잡한 Calendar 클래스(월의 시작은 0부터, 요일계산도 복잡) |
특징 2 | 윤초(leap second)와 같은 상황이 고려되지 않았다. |
특징 3 | Calendar인스턴스가 불변객체가 아니라서 수정될 가능성도 있었다. |
Joda-Time
Joda-Time클래스 | |
---|---|
특징 1 | 클래스에서 문제가 되었던 내용에 대해서 대부분 개선 |
Java.time(날짜나 시간을 변경시 변경되는 새 객체를 반환하여 멀티 쓰레드 환경에서 안정적)
Java.time클래스 | |
---|---|
핵심 클래스명 | 내용 |
LocalTime | 시간 표현 |
LocalDate | 날짜 표현 |
LocalDateTime | 날짜 시간 표현 |
ZoneDateTime | 시간대까지 표현 |
객체 사용방법 | |
---|---|
클래스명.now() | |
클래스명.of(년, 월, 일) | |
클래스명.of(시, 분, 초) |
자바스크립트의 엔진 Rhino -> Nashorn
상위 버전들은 모두 서드파티를 통해서만 지원
Default GC (Garbage Collector)로 Paralle GC를 사용
String 클래스 | |
---|---|
strip() | 문자열 앞, 뒤의 공백 제거 |
stripLeading() | 문자열 앞의 공백 제거 |
stripTrailing() | 문자열 뒤의 공백 제거 |
IsBlank() | 문자열이 비어있거나, 공백만 있는 경우 True 반환 |
String.trim().isEmpty()와 결과 동일 | |
Repeat(n) | n개의 문자열을 반복하여 붙여 반환 |
메소드명 | 설명 |
---|---|
Path writeString(Path, String, Charset, OpenOption) | 파일(Path)에 문자열(String)을 작성하고 Path로 반환. 파일 오픈 옵션에 따라 작동 방식을 다르게함. charset은 기본 UTF-8 |
Path readString(Path, Charset) | 파일 전체 내용을 읽어서 String으로 반환하고, 파일 내용을 모두 읽거나 예외가 발생시 자동 close, charset은 기본 UTF-8 |
boolean isSameFIle(Path, Path) | 두 Path가 같은 파일을 가르키면 True, 다르면 False |
Default GC (Garbage Collector)로 G1 GC를 사용