자바의정석

· Java
스트림(Stream) API 기존의 자바에서는 많은 양의 데이터를 저장하기 위해 배열이나 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하기 위해 컬렉션을 정의해 사용하였다. 컬렉션은 데이터를 저장하는 자료 구조에 따라 핵심이 되는 주요 인터페이스List, Map, Set을 정의하였지만 결국 성격이 다른 자료구조는 사용 방법이 달라 결국 반쪽 짜리 표준화라고 볼 수 있고 저장된 데이터에 접근하기 위해서는 반복문이나 반복자(iterator)를 사용하여 매번 새로운 코드를 작성해야 했다. 이렇게 작성된 코드는 가독성도 떨어지며, 코드의 재사용이 거의 불가능하며 데이터마다 다른 방법으로 접근해야했다. 이러한 문제점을 극복하기 위해서 Jdk 1.8부터 스트림(stream) API가 도입되었..
· Java
람다 표현식(Lambda Expression) 람다 표현식(Lambda Expression)은 간단히 말하자면 함수(메서드)를 간단한 함수 '식(expression)'으로 표현하는 방법을 말한다. // 메서드 int max(int a, int b) { return a > b ? a : b; } 람다식으로 표현하면 메서드 타입/이름, 매개변수의 타입 등의 불필요한 코드를 생략할수 있게 되어 코드가 매우 간결해지고 가독성을 높여준다.. // 람다식 (a,b) -> a > b ? a :b; 이러한 특징들은 람다 표현식을 식별자 없이 실행할 수 있는 함수 표현식을 의미하는 익명 함수(이름이 없는 함수, anonymous function) 라고도 한다. 람다 표현식 작성하기 화살표(->) 가호를 사용하여 람다 표..
· Java
애너테이션 애너테이션은 주석처럼 프로그래밍 언어에 영향을 미치지 않으며, 유용한 정보를 제공한다. 애너테이션의 등장 배경 기존에는 소스코드와 관련 문서를 따로 작성하여 소스코드 변경시 문서 내용도 변경해야 했지만 그러지 않는게 빈번하게 발생했다. 이로 인해 소스코드와 문서의 불일치 발생하여 소스코드에 주석을 넣어 문서와 소스코드를 합쳐 하나로 만들게 되었다. javadoc.exe 프로그램이 소스파일에서 주석을 추출해 문서를 작성 /** * The common interface extended by all annotation interfaces. Note that an * interface that manually extends this one does not define * an annotation in..
· Java
열거형(enum) 관련된 상수들을 같이 묶어 놓은 것, java는 타입에 안전한 열거형을 제공 C언어의 열거형은 값이 같은지만 체크 자바는 값과 타입 둘다 체크 열거형의 정의와 사용 enum 열거형 이름{ 상수명1, 상수명 2, ...} enum Direction { EAST, SOUTH, WEST, NORTH } 열거형 상수의 비교에 ==와 compareTo()를 사용가능, 비교연산자는 사용 불가 열거형의 조상 java.lang.Enum 클래스 모든 열거형은 Enum 클래스의 자손이며, 아래의 메서드를 상속받는다. values(), valueOf()는 컴파일러가 자동으로 추가한다. values() : 열거형의 모든 상수를 배열로 반환 값이 기본적으로 0, 1, 2, 3...으로 할당 되어 ordinal..
· Java
제네릭(Generics) 제네릭은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. 이를 통해 객체별 다른 타입 데이터를 저장할 수 있게된다. 배열 선언시 [](배열 자료형) 앞에 저장할 자료형의 타입을 저장하는 것과 같이 순서만 다를 뿐 자료형과 (꺾쇠 괄호) 안에 타입을 기재하여 사용한다. 제네릭 예시 : ArrayList list = new ArrayList boolean add(Product e) { .. } list.add(new Product()); list.add(new Box());// Product의 자손이기 때문에 가능하다 복수 타입 변수 타입 지정은 한개만 사용할 수 있는것이 아니다. 만약 여러개의 타입 지정이 필요할 경우 얼마든지 생성이 가능하다. 타입 변수를..
· Java
Collections 클래스 Collections 클래스는 컬렉션을 위한 메서드(static)를 제공한다. 1. 컬렉션 채우기, 복사, 정렬, 검색 - fill(), copy(), sort(), binarySearch() 등 메서드 제공 // entrySet()을 이욥해 map에 저장된 데이터를 불러오는 예시 public static void main(String[] args) { List list = new ArrayList(); // import static java.util.Collections.*; // Collection. 을 생략이 가능해진다. addAll(list, 1,2,3,4,5,6); rotate(list, 2);// 반시계 반얗(오른쪽)으로 회전 swap(list, 0, 2);// 0..
PP_D
'자바의정석' 태그의 글 목록