본문 바로가기

Language/Java9

javaDoc에 샘플코드(xml 등) 작성하기 javaDoc에서 샘플코드를 작성할 때 아래처럼 바로 쓰면 문서상에서 보이지 않는다. /** * Transaction 처리를 위한 DataSourceTransactionManager를 지정한다. * transactionManager bean은 아래와 같이 정의해서 사용한다. * * * * @param transactionManager */ public void setTransactionManager(DataSourceTransactionManager transactionManager) { this.transactionManager = transactionManager; } 이때 와 @code 태그를 사용하면 해결된다. 샘플코드 자체는 @code 태그만으로도 작성이 가능하지만, 완성된 문서에서는 개행이 안.. 2019. 8. 31.
람다식(Lambda Expression) 아주아주 기초 문법 Lambda Expression 람다 표현식은 함수를 간결하게 표현할 수 있다. 프로그래밍 언어의 개념으로는 단순한 익명 함수 생성 문법이라 이해할 수 있다. 기존의 불필요한 코드를 줄이고 가독성을 향상시키는 것이 목적이다. -> 기호 ( parameters ) -> expression body // 하나의 명령문만으로 이루어진 경우에 {} 생략 가능 ( parameters ) -> { expression body } 가장 대표적인 예시로 Thread 실행이 있다. 람다식을 사용하지 않는 경우에는 아래와 같이 Runnable 인터페이스를 작성해서 매개변수로 입력해야 한다. new Thread(new Runnable() { @Override public void run() { System.out.print.. 2019. 8. 30.
[java] RejectExecutionHandler reject policy - 작업 큐(workQueue)가 full인 상태에서의 처리 정책 Thread Pool ? 병렬 작업 처리가 많아지면 Thread의 개수가 증가하고 그에 따른 Thread 생성과 스케줄링으로 인해 CPU가 바빠져서 메모리 사용량이 늘어난다. 따라서 애플리케이션의 성능이 저하된다. 이런 상황을 막기 위해 Thread Pool을 사용한다. Thread Pool은 작업 처리에 사용되는 Thread를 제한된 개수만큼 정해놓고 작업 큐에 들어오는 작업을 하나씩 Thread가 맡아서 처리한다. java.util.concurrent 패키지에 ExecutorService 인터페이스와 ExecutorService 구현 객체를 만들 수 있는 Executors 클래스를 제공해준다. ExecutorService 구현 객체는 newCachedThreadPool()나 newFixedThread.. 2019. 8. 30.
[java8] Stream 연산자 정리 Operations Stream을 이용한 코드는 계속해서 Dot 연산자로 method chaining을 일으킨다. Intermediate Operations (중간 연산자) 중간 연산자들은 모두 Stream을 반환하므로 연속적으로 사용할 수 있다. 단, Stream은 게으르므로(Lazy!) 최종 연산이 존재하지 않으면 중간 연산은 실행되지 않는다. filter Predicate에 해당하는 Stream 요소를 필터링한다. List list = new ArrayList(); list.add("item4"); list.add("item5"); list.add("item1"); list.add("item2"); list.add("item3"); list.stream().filter(s -> s.endsWith(.. 2019. 8. 30.