728x90
반응형

JAVA/Modern JAVA 3

[JAVA 8] 날짜/시간 표현 (Instant, ZonedDateTime, LocalDateTime, Period)

자바 8이전의 날짜와 시간 정보는 Date, Calendar, SimpleDateFormatter 클래스를 이용왔지만, 이러한 기존 날짜를 표현하는 라이브러리들은 다양한 문제를 가져왔다. 기존 Date, Calendar 등 날짜/시간 표현식의 문제점 - 변경이 가능하다. : 날짜/시간 유형은 변경 불가능한 유형으로 유용하게 모델링 되는 자연 값이다. Date와 같은 기존 클래스는 mutable 하기 때문에 thread safe 하지 않아 멀티 쓰레드 환경에서 안전하게 사용하기 어렵다. - 클래스의 이름이 명확하지 않다. : Date인데 시간까지 설정이 가능하다는 것이 프로그램을 모호하게 만든다. - 월을 표현할 때 +1을 해주어야한다. : type safe 하지 않으며, 버그 발생의 여지가 있다. 그 외..

JAVA/Modern JAVA 2022.11.16

[JAVA 8] 분할 가능한 Iterator인 Spliterator 인터페이스

자바8에서 추가된 쪼갤 수 있는 기능을 가지고 있는 iterator란 뜻으로, Split + Iterator 인 Spliterator 인터페이스는 병렬 작업에 특화되어있다. 즉 Iterator가 반복이라면, Spliterator는 분할 가능한 반복이다. Iterator import java.util.*; public class Solution3 { public static void main(String[] args) { List list = new ArrayList(); list.add("콜팝"); list.add("치킨"); list.add("곱창"); list.add("팝콘"); list.add("피자"); Iterator listIterator = list.iterator(); while(listI..

JAVA/Modern JAVA 2022.11.01

[JAVA 8] 함수형(Functional) 인터페이스 와 람다(Lambda)표현식

함수형(Functional) 인터페이스 와 람다(Lambda)표현식 - 함수형 인터페이스는 추상 메소드가 오직 하나인 인터페이스를 말한다. (defult method 또는 static method는 여러개 존재해도 된다.) - @FunctionalInterface 어노테이션을 사용한다. -> 해당 인터페이스가 함수형 인터페이스 조건에 맞는지 검사해준다. (인터페이스 검증 및 유지보수를 위해 붙여주는 것이 좋다.) - 자바의 람다식은 함수형 인터페이스로만 접근이 가능하다 => 이러한 함수형 인터페이스를 사용하는 이유는 람다식을 사용하기 위함이고, 람다식을 사용 하는 이유는 불필요한 코드를 줄이고, 가독성을 높이기 위함이다. @FunctionalInterface public interface Function..

JAVA/Modern JAVA 2022.10.12
728x90
반응형