300x250
🍊 Date, Time 예제 코드 1. Instant, 지금 이 순간을 기계 시간으로 표현하는 방법 시간을 재거나 메서드 실행 시간을 비교할 때 사용한다. 사용자 친화적으로 출력하고 그리니치 평균 시간(GMT)을 기준으로 한다. public static void main(String[] args) { Instant instant = Instant.now(); System.out.println(instant); } // 2022-02-22T13:23:41.635622500Z 기준을 변경하고 싶다면 Zone을 지정해야 한다. public static void main(String[] args) { Instant instant = Instant.now(); ZoneId zone = ZoneId.systemDe..
✍️ 자바 8에 새로운 시간 API가 생긴 이유 자바8 이전에 사용했던 시간 관련 클래스 Date, Calendar가 여러모로 불편함을 유발했다. public static void main(String[] args) { Date date = new Date(); Calendar calendar = new GregorianCalendar(); } 첫째로, 작명이 제대로 되어있지 않다. 클래스의 이름이 Date임에도 시간(Time)까지도 나타낼 수 있고 Time 스탬프도 찍을 수 있다. Date date = new Date(); long time = date.getTime(); // Date(날짜)에서 time(시간)을 가져온다고? 심지어 getTime으로 가져오는 값이 현재의 시간이 아닌 1970.1.1로..
✍️ Optional 실습 Optional API isPresent, get, ifPresent, orElse, orElseGet, orElseThrow, Optional filter, Optional map을 사용해 보자. public static void main(String[] args) { List springClasses = new ArrayList(); springClasses.add(new OnlineClass(1, "spring boot", true)); springClasses.add(new OnlineClass(2, "spring core", false)); springClasses.add(new OnlineClass(3, "rest api development", false)); } ..
✍️ Optional의 등장 배경 Optional, 자바8 에서 추가된 새로운 인터페이스 비어있을 수 있고 무언가를 담고 있을 수 있는 컨테이너 인스턴스의 타입 Optional의 등장 배경을 먼저 살펴보자. 아래 코드가 무사히 실행이 될까? public static void main(String[] args) { OnlineClass spring_boot = new OnlineClass(1, "spring boot", true); Duration studyDruation = spring_boot.getProgress().getStudyDuration(); System.out.println(studyDruation); } 더보기 public class OnlineClass { private Integer ..
✍️ Stream API 실습 Stream API flatMap map, filter, anyMatch를 사용해 보자 온라인 강의의 id와 강의명, 마감 여부를 담는 OnlineClass public class OnlineClass { private Integer id; private String title; private boolean closed; public OnlineClass(Integer id, String title, boolean closed) { this.id = id; this.title = title; this.closed = closed; } public Integer getId() { return id; } public void setId(Integer id) { this.id =..
✍️ Stream 자바8에 추가된 기능 중에 가장 많은 관심을 받은 기능인 Stream에 대해 알아보려 한다. Stream이란 컬렉션과 같은 연속된 데이터를 처리하는 오퍼레이션의 모음으로, Stream 그 자체로는 데이터가 아니다. Stream API엔 filter, map, sorted 등 여러 중개 오퍼레이션이 있는데, 해당 오퍼레이션을 호출하면 연산을 수행하고 중간 처리된 Stream이 반환된다. 또한 반환된 Stream에 다시 중개 오퍼레이션을 호출해 다른 연산을 계속 이어나갈 수 있는데 이를 Stream pipeline(스트림 파이프라인)이라 한다. Stream의 한 가지 특징은 소스 데이터를 변경하지 않는다는 것이다. 예를 들어, String을 담고 있는 List가 있고 List의 Stream..