Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 고급매핑
- 스프링 핵심 원리 이해
- 20055
- 7장 고급매핑
- spring
- Kotlin In Action
- 코틸린인액션
- 백준 20055 컨베이어 벨트 위의 로봇
- Kotlin in action 6장
- 13460 구슬탈출 2
- Kotlin in action 3장
- 컨베이어 벨트 위의 로봇 Python
- 20055 컨베이어 벨트 위의 로봇
- 백준
- 자바 ORM 표준 JPA 프로그래밍 7장
- KotlinInAction
- 싱글톤 컨테이너
- Python
- 객체 지향 설계와 스프링
- 스프링 핵심 원리
- 백준 13460 Python
- 기능개발 python
- kotlin in action 정리
- Kotlin in action 5장
- 스프링 핵심 원리 - 기본편
- 스프링 컨테이너와 스프링 빈
- 코틀린
- 코틀린인액션
- Kotlin in action 10장
- Kotlin
Archives
- Today
- Total
기록하는 습관
Java 본문
2022. 1. 25 기준, 17.0.2 version
왜 흔히 Java8이 안전하다고 하는것인지?
→ 외부 툴과 연동할 때 Oracle JDK가 아닌, Open JDK를 사용해야 하며 생기는 이슈들이 생길 수 있음.
- Java8
- 2014년
- 오라클 인수 후 첫 번째 버전
- 2개의 버전으로 나뉨 (Oracle JDK, OpenJDK)
- Optional
- Stream
- 새롭게 추가된 날짜 API
- 애플릿 뷰어 도구 사용 가능
- 애플릿이란? 패널(Panel)을 상속하는 클래스로, 웹브라우저에 담겨서 실행되는 작은 응용 프로그램.
- String 문자열 관련 메소드가 적음
- lambda 등장. lambda 파라미터에는 특수 변수 사용되지 않음
- PermGen Area 제거
- interface default method 추가
- Java11
- 2018.09
- OracleJDK와 OpenJDK 통합, Oracle JDK가 구독형 유로 모델로 전환
- 서드파티 JDK 로의 이전 필요
- ex) Zulu JDK, AdoptOpenJDK
- lambda에서 로컬 변수 var 사용
- String 클래스, 메서드 추가 (isBlank, lines, strip, stripLeading, stripTrailing, and repeat)
- File 클래스, 메서드 추가 (readString, writeString)
- 컬렉션 인터페이스, 메서드 추가
- toArray() 메서드 오버로딩 하는 메서드 추가 → 원하는 타입의 배열 선택 가능
- HTTP Client
- Java9에서 도입된 HTTP client가 표준 기능이 됨.
- Nest-Based Access Control
- 중첩클래스들이 접근지정자에 상관 없이 서로의 필드에 접근이 가능해짐.
- 자바 파일 실행
- javac를 통해 컴파일 하지 않고도 바로 실행 가능해짐.
PermGen 이란?
JDK 1.7 이하 버전에서 존재. 이 영역은 클래스 메타 데이터가 들어갈 곳인데, 해당 공간의 크기는 예측하기 어려움. Java에선 클래스 메타데이터를 읽고 객체를 생성할 수 있음.
- 클래스 메타데이터란? 클래스 이름, 생성 정보, 필드 정보, 메서드 정보 등
PermGen 영역은 OS, JVM 버전마다 default 값이 다르고, 매우 작게 할당되어 있음. 따라서, 클래스 로딩을 많이 하면 공간이 부족하고 OutOfMemoryError 많이 발생함.
JDK 1.8 부터는 Metaspace로 완벽하게 대채되었고, Metaspace는 클래스 메타 데이터를 native 메모리에 저장하고 부족하면 자동으로 늘려줌.
참고
'개발 > Research' 카테고리의 다른 글
배치, 스케줄러 (0) | 2022.07.12 |
---|---|
Mybatis vs. JPA (0) | 2022.07.12 |
Spark, Hadoop (0) | 2022.07.12 |
offset, cursor 기반 pagination (0) | 2022.07.12 |
lock 오픈소스 (ShedLock, dLock) (0) | 2022.07.12 |
Comments