본문 바로가기
반응형

백엔드/Java22

이너 클래스/로컬 클래스/익명 클래스/람다 이너 클래스는 겉으로는 인터페이스를 보여주고속에 private 클래스를 선언하여 가려놓기 위해서변경되도 상관없도록 로컬 클래스는 이너 클래스로 쓰다가특정한 메서드에서만 사용하는 경우에 그냥 메서드 안에 넣으면 안돼? 해서 생긴 것 로컬 클래스 쓰다가 이거 밖에서 보지도 않는데(아무도 안보는데) 굳이 이름이 필요한가?필요없다 -> 익명 클래스 익명클래스 쓰다보니까 이거 필요없는거 더 없애도 되겠는데?람다 메서드만 전달하면 되는 경우 Ex> Comparator자바에는 메서드만 전달하기가 불가능하다. 클래스로 싸서 전달 2018. 6. 21.
람다의 표현식 람다를 사용하면 좋은 상황- 인스턴스가 아니라 기능 하나를 정의해서 전달해야 하는 상황- 메서드 하나만 있는 인터페이스를 구현하는 상황 생략 규칙1. 메서드의 몸체가 하나의 문장으로 이뤄져있다면 중괄호의 생략이 가능하다(return문은 안됨) (String s) -> { System.out.println(s); } (String s) -> System.out.println(s); 2. 매개변수가 하나일 경우 소괄호도 생략 가능(s) -> System.out.println(s); s -> System.out.println(s); 3. return문이 메소드 몸체의 유일한 문장이면 return 생략 가능 c = (a, b)-> {return a + b;}; c = (a, b)-> a + b; 4. 매개변수가.. 2018. 6. 6.
람다 윤성우 - 열혈 JAVA 프로그래밍 책 내용을 정리한 것 람다를 사용하면- 코드를 줄일 수 있다.- 가독성도 뛰어나다.- 람다식은 그 표현을 최대한 간단히 하는 것이 미덕이다. 익명함수 vs 람다Printable prn = new Printable() {@Overridepublic void print(String s) {System.out.println(s);}}; Printable prn = (s) -> {System.out.println(s);}; 1. 좌항의 Printable 자료형을 보고 생성자 제거(알아서 찾는다) 색깔2. 매개변수가 하나인 Printable의 메서드를 찾아서 알아서 선택 색깔Printable prn = new Printable() {@Overridepublic void prin.. 2018. 6. 6.
병목현상 방지 JobXXX란 클래스는 Quartz 라이브러리를 통해 0.5초에 한번 실행된다. 명령내역 변경이력 테이블에서 처리되지 않은 데이터를 가져와 시간 순서대로 하나씩 처리를 해야하는데이 때 맨 처음 데이터가 데이터의 결함등으로 처리되지 못하고 Queue를 꽉 틀어막을 수 있다 이를 해결하기 위해 DB에서 데이터를 가져온 후 이를 장비별로 분류하여 Queue에 담아 처리한다.데이터를 담는 자료구조를 List에서 HashMap로 변경했다 이전 방식 변경된 방식이전 방식이 한줄로 처리됐다면, 변경된 방식에서는 장비별로 각자의 처리라인이 생겼다이렇게 함으로써 중간 처리과정이 복잡해졌지만 안정성이 높아졌다고 할 수 있다복잡해진 처리 과정1. 데이터가 있는지 확인할 때 각 큐 별로 비어있는지 확인이 필요2. 데이터를 D.. 2018. 5. 16.
반응형