-
스트림(Stream)
컬렉션의 데이터를 표준화 하여 쉽게 다루기 위한 도구 컬렉션,배열 --> 1. 스트림 오픈 --> 2. 중간 연산 --> 3. 최종 연산 스트림은 데이터를 읽기만 할 뿐 변경시키지 않음(Read Only) 일회용 such as Iterator 내부 반복자를 통해 처리 cf) 외부 반복자 : Iterator 최종 연산 전까지 중간 연산이 실행되지 않는다(lazy) 1. 스트림 오픈 ex) student.stream(); 2. 중간 연산 필터링, 매핑(변환), 정렬, 그룹핑, 루핑(순환) 리턴타입 : 스트림 (1) 필터링 ...
-
람다식, 메서드참조
(매개변수) -> 함수바디(구현부) interface 변수 = 람다식(함수구현); ex ) MyFunction f1 = () ->System.out.println(“출력”); 객체지향언어인 자바를 함수형 언어로 사용 익명 함수 (반환타입 X, 메서드 이름 X) 익명 클래스의 객체임 (람다식으로 만들때 익명 클래스, 인터페이스 모두 생략) 람다식(함수)에서 로컬변수(람다식을 쓰고있는 메서드에 정의된 변수)를 쓰고 싶으면 final로 설정해야 함 (but, default값이 final) -> 메서드 안의 메서드에서 사용하려면 outer 메서드에서 그 변수를 fi...
-
[JAVA] 어노테이션(Annotation)
주석이라는 의미 자바 5버전부터 추가된 메타데이터의 일종 클래스 파일에 임베디드되어 컴파일러에 의해 생성 된 후 JVM에 포함되어 동작한다 메타 어노테이션 1. @Retention 어노테이션이 유지되는 시간을 지정 RetentionPolicy.SOURCE : 소스파일(.java)까지만 유지 (=컴파일에는 이후 제거된다) RetentionPolicy.CLASS : 클래스파일(.class)까지만 유지 (=실행되면 제거된다) RetentionPolicy.RUNTIME : 런타임때도 JVM에 의해 계속 참조가능 2. @Target 어노테이션 적용 대상을 지정...
-
열거형(Enum)
enum은 관련된 상수들을 하나의 객체로 만든 것이다 열거 타입 자체가 클래스이며, 상수 하나당 자신의 인스턴스를 만들어 public static final 필드로 공개한다 열거 타입은 밖에서 접근할 수 있는 생성자를 제공하지 않으므로 사실상 final 이다. 따라서, 열거 타입 선언으로 만들어진 인스턴스는 딱 하나씩만 존재하게 된다 싱글톤 모든 열거형의 조상은 Enum 클래스 enum도 클래스 이기 때문에 필드와 메서드를 추가할 수 있다 public enum Direction { EAST(1), WEST(2), SOUTH(-10), NORTH(5); ...
-
쓰레드(Thread), ThreadLocal, Runnable
프로세스 : 실행중인 프로그램 멀티태스킹 : 다중 프로세스 실행 쓰레드 : 프로세스 내에서 작업 단위 멀티쓰레딩 : 한 프로세스 내에서 다중 쓰레드 실행 쓰레드 Thread 클래스를 상속 자바의 단일상속에 의해 다른 클래스를 상속받을수 없음 인터페이스를 사용하는 방법에 비해 유연성이 떨어짐 Runnable 인터페이스 구현(추천) 쓰레드간의 데이터를 공유해야 할 때 인터페이스로 구현해서 연결...