본문 바로가기

Java 1.8

(4)
[Java] Java의 날짜, 시간 클래스는 어떻게 편해졌나 Java 1.7까지는 기본 SDK에서 날짜와 시간을 표현하고 사용하기 위해서는 java.util.Date 클래스와 java.util.Calendar 클래스를 이용해야 했습니다. 하지만 아주 잠깐만 사용해봐도 어마어마하게 불편하다는 것을 알 수 있습니다. 그래서 나온것이 Joda-Time이라는 오픈소스 라이브러리였고 Java 8에서는 드디어 개선되어서 적용되었습니다. 그러면 어떻게 좋지 않았고 어떠한 사항이 개선되었는지 확인해보겠습니다. 우선 아주 잘 정리된 Naver D2의 게시글을 공유해드립니다. 저의 게시글은 아래 링크의 글에 기반으로 한 글입니다. 그런데 정리를 곁들인. d2.naver.com/helloworld/645609 1. JDK 1.8 미만의 날짜 계산 단점 사용시 착오가 생길 수 있는 부..
Java 1.8 Optional Optional Optional을 사용하지 않을 때는 메서드의 결과값이 null일 경우를 체크하고 분기를 나눠서 처리해야 했습니다. 코드가 지저분해지고 길어졌죠. Optional을 사용하면 조금 더 직관적으로 표현할 수 있습니다. 메서드가 반환할 결과값이 '없음'을 명확하게 표현하고, null을 반환하면 에러를 유발할 가능성이 높은 상황에서 Optional을 반환 타입으로 사용하는 것이 목적이다. 위의 목적에 맞는 사용법을 추구하여 사용해야겠습니다. 1. 기본 사용 예시 //null이 반환된 메소드 String isNullString = testBO.getString(); //기존 null 체크 방식 String retValue = ""; if (isNullString == null) { retValue..
Java 1.8 method reference (메소드 레퍼런스) Method Referece - 자바 1.8부터 도입된 문법으로 특정 람다 표현식을 축약한 것 - 가독성을 높일 수 있다 간단하게는 람다 표현식을 특수한 상황에서 좀 더 보기 편하게 작성하는 방식이라고 이해할 수 있습니다. //람다식 (args) -> ClassName.staticMethod(args) //메소드 참조 ClassName::staticMethod //람다식 (arg0, rest) -> arg0.instanceMethod(rest) //메소드 참조 ClassName::instanceMethod //람다식 (args) -> expr.instanceMethod(args) //메소드 참조 expr::instanceMethod //모던자바인액션 참조 예시를 들어보자면 저는 주로 stream과 함께 ..
Java 각 버전의 특징들 (~JAVA21) Java 1.8이 나온지는 벌써 6년정도 되었습니다. 그동안 java 1.8을 꾸준히 사용해오고 jdk 11뿐만 아니라 최근에는 jdk 17까지 나온 상황입니다. 이 시점에서 다시 한번 정리하면 좋을 것 같아서 Java 1.8 부터 정리해보려고 합니다. 물론 다양한 특징들이 있겠지만 특징적인 일부만 나열하도록 하겠습니다 Java 1.8 특징 (2014.03 release) Lambda Expression (람다표현식) Method Reference (메소드 참조) Stream (스트림) Default Method Optional Joda Time Java 9 특징 (2017.09 release) Jingsaw 기반 런타임 모듈화 Jshell Private Interface Method Immutable ..