목록2024/03 (11)
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 타입이 가질 수 있는 모든 값을 순회하며 출력..
정말 몇년 만에 자바책을 읽어본 것 같다. 거의 한 5~6년도 더 된 기분이다. 안드로이드도 코틀린으로 넘어간지 꽤 됐고(회사마다 차이는 있을 수 있겠지만) 자바 문법이 기억이 잘 나지 않았다. 마지막으로 회사를 그만두고 쉰지도 1년이 되어가고 감을 너무 많이 잃어버려서 학원에서 준 책 중 자바책을 제일 먼저 읽어보았다. 그래도 나름 아는부분이 있어서 변수의 자료형이라던가 연산자, 제어자 부분은 과감히 스킵했고 자바에서 제일 중요한 객체 지향 프로그램부터 읽어보기로 시작했다. 책을 다 보고 느낀점은 요즘 기초책이 굉장히 잘 나온다는 사실이었다. 너무 놀랬다. 생각보다 이해가 쉽도록 설명을 잘 해놓은 것이었다. 이정도면 자바를 모르는 비전공자도 입문하기에 충분히 어려움이 없겠다고 느껴지긴 했다. 너무 과하..