목록개발새발 (29)
JaPark Bug World
람다 표현식 람다 (인자 리스트) -> {바디} 인자 리스트 인자가 없을 때 : () 인자가 한개일 때 : (one) 또는 one 인자가 여러개 일 때 : (one, two) 인자의 타입은 생략 가능, 컴파일러가 추론(infer)하지만 명시 가능, (integer one, integer two) // 인자가 없을 시 Supplier getTen = () -> 10; // 인자가 한개 일 시 Function oneParam = (i) -> i; // 인자가 여러개 일 때 BiFunction biFunc = (integer, integer2) -> integer + integer2; 바디 화살표 오른쪽에 함수 본문을 정의한다. 여러 줄인 경우에 {}를 사용해서 묶는다 한 줄인 경우에 생략 가능, return..
자바에서 제공하는 함수형 인터페이스 Java가 기본으로 제공하는 함수형 인터페이스 java.lang.function 패키지 자바에서 미리 정의해둔 자주 사용할만한 함수 인터페이스 Function BiFuncion Consumer Supplier Predicate UnaryPerator BinaryOperator 함수 인터페이스를 만들지 않고 자바에서 미리 정의해둔 함수를 가지고도 구현이 가능하다. Function T 타입을 받아서 R 타입을 리턴하는 함수 인터페이스 R apply(T t) import java.util.function.Function; public class Plus10 implements Function { @Override public Integer apply(Integer integ..
함수형 인터페이스와 람다 표현식 소개 함수형 인터페이스(Functional interface) 추상 메소드를 딱 하나만 가지고 있는 인터페이스 SAM(single Abstract Method) 인터페이스 @FunctionalInterface 애노테이션을 가지고 있는 인터페이스 // @FunctionalInterface 사용하여 오로지 추상메서드 하나만 존재하도록 명시 @FunctionalInterface public interface RunSomething { // abstract는 생략할 수 있다. void doIt(); } > @FunctionalInterface을 선언하게 되면 메소두가 2개인 경우 error 발생 람다 표현식(Lambda Expresstions) 함수형 인터페이스의 인스턴스를 만드..
* 해당 내용은 인프런 이펙티브 자바 완벽 공략 1부 백기선님의 영상을 기준으로 작성하였습니다. https://inf.run/fnnRy 백기선 이펙티브 자바 완벽 공략 1부 강의 - 인프런 자바 학습의 끝판왕 “이펙티브 자바”를 보다 쉽고 완벽하게 학습하세요. 이 강의를 수강하시면 여러분의 자바 프로그래밍 지식과 실력뿐 아니라 학습 능력 또한 향상 시킬 수 있습니다., MS 시 www.inflearn.com 두번째 방법 : private 생성자 + 정적 팩터리 메서드 두번째 방법 : private 생성자 + 정적 팩터리 메서드 장점1. API를 바꾸지 않고도 싱글턴이 아니게 변경할 수 있다. 장점2. 정적 팩터리를 제네릭 싱글턴 팩터리로 만들 수 있다. 장점3. 정적 팩터리의 메서드 참조를 공급자(Sup..
* 해당 내용은 인프런 이펙티브 자바 완벽 공략 1부 백기선님의 영상을 기준으로 작성하였습니다. https://inf.run/fnnRy 백기선 이펙티브 자바 완벽 공략 1부 강의 - 인프런 자바 학습의 끝판왕 “이펙티브 자바”를 보다 쉽고 완벽하게 학습하세요. 이 강의를 수강하시면 여러분의 자바 프로그래밍 지식과 실력뿐 아니라 학습 능력 또한 향상 시킬 수 있습니다., MS 시 www.inflearn.com 장점, 간결하고 싱글텀임을 API에 들어낼 수 있다. 단점1, 싱글톤을 사용하는 클라이언트 테스트하기 어려워진다. 단점2, 리플렉션으로 private 생성자를 호출 할 수 있다. 리플렉션을 사용하면 싱글톤이 깨지게 됨. 단점3, 역직렬화 할 때 새로운 인스턴스가 생길 수 있다.
* 해당 내용은 인프런 이펙티브 자바 완벽 공략 1부 백기선님의 영상을 기준으로 작성하였습니다. https://inf.run/fnnRy 백기선 이펙티브 자바 완벽 공략 1부 강의 - 인프런 자바 학습의 끝판왕 “이펙티브 자바”를 보다 쉽고 완벽하게 학습하세요. 이 강의를 수강하시면 여러분의 자바 프로그래밍 지식과 실력뿐 아니라 학습 능력 또한 향상 시킬 수 있습니다., MS 시 www.inflearn.com 자바빈즈, 게터, 세터 자바빈(JavaBean) - (주로 GUI에서) 재사용 가능한 소프트웨어 컴포넌트 https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ 그 중에서도 자바빈이 지켜야 할 규약 아규먼트 없는 기..
* 해당 내용은 인프런 이펙티브 자바 완벽 공략 1부 백기선님의 영상을 기준으로 작성하였습니다. https://inf.run/fnnRy 백기선 이펙티브 자바 완벽 공략 1부 강의 - 인프런 자바 학습의 끝판왕 “이펙티브 자바”를 보다 쉽고 완벽하게 학습하세요. 이 강의를 수강하시면 여러분의 자바 프로그래밍 지식과 실력뿐 아니라 학습 능력 또한 향상 시킬 수 있습니다., MS 시 www.inflearn.com - 계층형 빌더 해당 부분은 공부가 좀 필요할 것 같다... 책도 동영상도 이해가 안간다...
* 해당 내용은 인프런 이펙티브 자바 완벽 공략 1부 백기선님의 영상을 기준으로 작성하였습니다. https://inf.run/fnnRy 백기선 이펙티브 자바 완벽 공략 1부 강의 - 인프런 자바 학습의 끝판왕 “이펙티브 자바”를 보다 쉽고 완벽하게 학습하세요. 이 강의를 수강하시면 여러분의 자바 프로그래밍 지식과 실력뿐 아니라 학습 능력 또한 향상 시킬 수 있습니다., MS 시 www.inflearn.com 생성자에 매개변수가 많다면 빌더를 고려하라. 정적 팩터리와 생성자에 선택적 매개변수가 많을 때 고려할 수 있는 방안 대안1: 점층적 생성자 패턴 또는 생성자 체이닝 매개변수가 늘어나면 클라이언트 코드 작성하거나 읽기 어렵다. - 점층적 생성자 public class NutritionFacts { pr..
* 해당 내용은 인프런 이펙티브 자바 완벽 공략 1부 백기선님의 영상을 기준으로 작성하였습니다. https://inf.run/fnnRy 백기선 이펙티브 자바 완벽 공략 1부 강의 - 인프런 자바 학습의 끝판왕 “이펙티브 자바”를 보다 쉽고 완벽하게 학습하세요. 이 강의를 수강하시면 여러분의 자바 프로그래밍 지식과 실력뿐 아니라 학습 능력 또한 향상 시킬 수 있습니다., MS 시 www.inflearn.com 1. 열거타입 (Enumeration) 상수 목록을 담을 수 있는 데이터 타입 특정한 변수가 가질 수 있는 값을 제한할 수 있다. 타입-세이프티(Type-Safety)를 보장 할 수 있다. 싱글톤 패턴을 구현할 때 사용하기도 한다. 질문1) 특정 enum 타입이 가질 수 있는 모든 값을 순회하며 출력..