본문 바로가기

Java

(4)
Java 시간관련 객체 정리 들어가면서 이번 글에서는 Java에서 제공하는 시간과 관련된 Class를 정리한다. 자바 시간 객체 종류 Date public class Date implements java.io.Serializable, Cloneable, Comparable { ... private transient long fastTime; ... } The class {@code Date} represents a specific instant* in time, with millisecond precision. java.util 패키지에 있는 클래스다. 좀 더 쉽게 풀어쓰면 1970년 1월 1일 00:00:00 GMT를 기준으로 지금 몇 milisecond이 지났는지를 저장한다. (이런 개념을 epoch-seconds 라고 부른다...
람다식 람다식? 람다식(Lambda expression)은 자바에서 제공하는 함수형 프로그래밍 방식이다. (함수형 프로그래밍은 함수의 구현과 호출만으로 프로그램을 만드는 프로그래밍 방식이다) 람다식을 간단하게 설명하자면 이름이 없는 익명 함수를 만드는 것이다. 예시를 통해 람다식에 대해 알아보자. //두 정수를 매개변수로 받아 두 수의 합을 반환하는 함수 ​ //일반적인 함수 선언 int add(int a, int b) { return a + b; } ​ //람다식을 이용한 함수 선언 (int a, int b) -> {return a + b;} 람다식을 보면 소괄호('()') 안에 함수에서 사용될 매개변수가 들어가고, 중괄호('{}') 안에 함수에서 수행할 로직이 들어간다. 그리고 일반적인 함수 선언 방식과 비..
익명 클래스 익명 클래스? 익명 클래스란 무엇일까? 이름 그대로 이름 없는(익명) 클래스다. 익명 클래스와 비교해보기 위해 일반(이름이 있는) 클래스는 어떻게 선언하는 다시 생각해보자. class Hello { ... } 위는 이름이 Hello인 클래스를 선언한 예시다. 하지만 익명 클래스는 이렇게 선언하지 않는다. 이름이 없으므로 다른 방식으로 선언한다. 선언 방법은 뒤에서 예시를 통해 알아보겠다. 익명 클래스 사용 이유? 익명 클래스의 의미는 파악했지만 왜? 익명 클래스를 알아야 할까? 프로그래밍을 하다 보면 프로젝트의 전반적으로 사용되는 객체가 존재하고, 어느 부분에서 일시적으로 사용하는 객체가 존재한다. 일시적으로 사용하는 객체의 경우 우리가 굳이 클래스를 정의한 다음 사용해야 할까? 이는 효율적이지 않은 것..
Iterator Iterator? Iterator 는 자바의 컬렉션 프레임워크에서 컬렉션에 저장되어 있는 요소를 읽어오는 방법을 표준화한 것이다. (추상적이어서 잘 이해가 안 된다.) Iterator 어떻게 생겼을까? 일단 Iterator가 어떻게 생겼는지 확인해 보자. 직접 java 코드를 열어보면 다음처럼 선언되어 있다. public interface Iterator { boolean hasNext(); ​ E next(); ​ default void remove() { throw new UnsupportedOperationException("remove"); } ​ default void forEachRemaining(Consumer