Java (13) 썸네일형 리스트형 모던 자바인액션 1장 자바 8 이후 부터는 간결한 코드, 멀티코어 프로세서의 쉬운 활용이라는 요구사항에 맞춰 진화하였다. 왜 아직도 자바는 변화하는가? 기술의 흐름에 맞추지 못하는 언어는 다른 경쟁 언어에 비해 도태될 수 밖에 없다. 하드웨어가 발전함에 따라 빅데이터를 다루게 되었고, 멀티코어 컴퓨터나 컴퓨팅 클러스터를 이용해서 빅데이터를 효과적으로 처리할 필요성이 커졌다. 그러나 자바 8이전 버전에서는 이러한 요구사항을 만족시킬 수 없었다. 자바 8 설계 컨셉 스트림 처리 유닉스 계열의 운영체제에서는 '|' 키워드로 다른 프로그램에게 데이터를 전달할 수 있다. 이런 방식은 간결함과 동시에 병렬성을 수행할 수 있는데, 다음과 같은 예제를 보자. cat file1 file2 | tr "[A-Z]" "[a-z]" | sort |.. Java Collection Java에는 List, Map, Set 인터페이스를 기준으로 여러 구현체가 존재한다. C++에도 이와 비슷하게 Standard Template Library가 존재하는데, 사용자가 구현하지 않고 미리 만들어둔 구현체를 사용하여 자료구조를 사용할 수 있도록 한다. 대표적으로 몇 가지 알아보자. List List인터페이스를 직접 @Override를 통해 사용자가 정의하여 사용할 수 있고, 대표적인 구현체로 ArrayList가 존재한다. 이외에 LinkedList 등의 구현체가 있다. Map 대표적인 구현체로 HashMap이 존재한다. 그런데 멀티스레드 환경에서 문제가 있기 때문에 이를 위해 ConCurrentHashMap이 있다. Set 대표적인 구현체로 HashSet이 존재한다. Value에 대해 중복된 .. 자바 빌더(Builder) 패턴 + lombok 자바에서 객체를 생성할 때 일반적으로 생성자를 이용한다. 그런데, 가만히 보면 프로그래머가 생성자의 순서를 외워서 인스턴스를 만들어야 한다. 그런데.. 몇 가지 문제점이 있다. 1. 타입이 같은 파라미터를 헷갈릴 수 있다. public Order(int id, int UUid, String orderDetail, String Order) //id, UUid .. 그 다음이 뭐였더라? { .... } Order 객체를 생성하기 위해 생성자에서 값을 넣는 도중 순서가 생각이 안난다면, 클래스를 직접 보거나 IDE에서 마우스를 갖다 대야 볼 수 있다. 2. 생성자의 파라미터가 많으면 다 넣어줘야 한다. public Order(int id, int UUID, String name, String OrderDeta.. 이전 1 2 다음