java 5

Checked Exception & Unchecked Exception

에러(Error) : 프로그램이 정상적으로 실행되지 못하는 상황 (하드웨어적인 메모리와 관련된 문제)오류(Exception) : 개발자의 실수로 인해서 발생하였지만 처리가능한 오류(처리할 경우 정상화할 수 있는 문제)Checked Exception : RuntimeException의 하위 클래스가 아니면서 Exception 클래스의 하위 클래스들이다. 예외 처리를 강제한다.Unchecked Exception : RuntimeException의 하위 클래스들을 의미합니다. 이것은 체크 예외와는 달리 에러 처리를 강제하지 않는다.Checked ExceptionRuntimeException의 하위 클래스가 아니면서 Exception 클래스의 하위 클래스이며 컴파일러가 체크하는 예외를 뜻함.(try & catc..

가비지 컬렉션 (GC, Garbage Collection) (1)

가비지 컬렉션 (GC, Garbage Collection)이란?자바의 메모리 관리 방식, JVM의 Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체(garbage)를 모아 주기적으로 제거하는 프로세스를 말한다.가비지 컬렉터가 메모리 관리를 대행해 주기 때문에 Java 프로세스가 한정된 메모리를 효율적으로 사용할 수 있게 하고, 개발자 입장에서 메모리 관리, 메모리 누수(Memory Leak) 문제에서 대해 관리하지 않아도 되어 개발에만 집중할 수 있다는 장점이 있다. 가비지 컬렉션이 대상을 선정하는 방법가비지 컬렉션은 특정 객체가 garbage인지 아닌지 판단하기 위해서 도달성, 도달능력(Reachability) 이라는 개념을 적용한다.객체에 대해 레퍼런스가 있다면 Reachabl..

about Java 17

Java 17은 21년 9월에 공개된 세번째 LTS 버전으로 29년 9월까지 지원된다. 23년 기준 Java 17 채택률은 약 45% (출처 : jetbrains) ※ Spring Boot 3.0 버전 부터는 JDK 17 이상만을 지원한다. ※ Spring Boot 3.0 이상 사용을 위해 JDK 17이 필요하고, 또한 JDK 17은 지원 기간이 길기 때문에 채택률은 더 올라갈 것으로 생각된다.※ 그러나 서비스에서 사용하는 서드파티 호환성을 따져봐야한다.Java 17에 추가된 내용봉인 클래스(Sealed Classes)의사 난수 생성 API 확장1. 봉인 클래스(Sealed Calsses)상속을 통해 코드를 재사용할 수 있지만 무분별한 상속은 오히려 설계와 가독성에 있어서 안좋은 영향을 끼친다.봉인 클래..

about Java 11

java11은 2018년 9월에 공개되었으며. java8, 17과 함께 LTS 버전이다. 23년 기준 Java 11 채택률은 약 38% (출처 : jetbrains) Java 11에 추가된 내용String 클래스에 새로운 메서드 추가컬렉션 인터페이스에 toArray() 메서드 추가Predicate에 not 메서드 추가람다식에 var 변수(지역 변수) 사용 가능 1. String 클래스에 새로운 메서드 추가String s = "";s.strip(); // 문자열 앞, 뒤 공백 제거s.stripLeading(); // 문자열 앞 공백 제거s.stripTrailing(); // 문자열 뒤 공백 제거s.isBlank(); // 문자열이 비어있거나 공백만 포함되어 있을 경우 true 반환 s.trim().isEm..

about Java 8

Java 8은 2014년 3월에 공개되었다. 3가지의 LTS(Long Term Support) 버전 중 하나이다.Java 8Java 11Java 17LTS 버전은 말 그대로 오랜 기간 지원을 해주기 때문에 실제 개발 시 사용하기에 용이하다. 23년 기준 Java 8 채택률은 약 50% (출처 : jetbrains) 일반 지원은 2019년 종료 되었지만, 연장 지원은 2023년 9월까지 였다. 여전히 많이 사용되어지고 있는 Java 8의 특징을 보려고 한다.Java 8에 추가 된 내용람다 표현식(Lambda Expression)메서드 참조(Method Reference)Interface의 Default MethodOptionalStream새로운 시간/날짜 API 1. 람다 표현식 (Lambda Expres..