1. Optional:: 값이 존재할 수도 있고, 존재하지 않을 수도 있는 상황을 명시적으로 표현:: null이 올 수 있는 값을 감싸는 Wrapper 클래스 :: 객체 참조 시, NPE에 대한 방지 목적NPE(Null Pointer Exception)더보기Null 값인 객체에 참조할 때 발생해결 방법null 체크 → 버거로움optional디버깅 도구 사용null을 허용하지 않는 설계 → 초기값 부여장점- optional을 사용하는 경우 코드가 Null-safe해짐- 가독성 향상 - 애플리케이션이 안정적side-Effect(잘못 쓸 경우)- NullPointerException 대신 NoSuchElementException 유발- 직렬화의 경우, 이전에 없던 문제 발생- 오버헤드의 위험성1.1 Optio..
2025.02.04 - [분류 전체보기] - [JAVA] 기초 8. 함수형 인터페이스 - 람다 표현식과 익명 구현 객체 [JAVA] 기초 8. 함수형 인터페이스 - 람다 표현식과 익명 구현 객체1. 람다 표현식- Lambda Expression:: 익명 함수(Anonymous Funtion)을 간결하게 표현하는 방법:: 주로, 함수형 인터페이스 구현에 사용함수형 인터페이스:: 단 하나의 추상 메서드만을 가진 인터페이스:: Ex)hee-ya07.tistory.com위의 내용에 이어서 글을 작성하겠다. 0. 함수형 인터페이스:: 하나의 추상 메서드를 가지는 "인터페이스":: " @FunctionalInterface " 어노테이션을 사용하여 표시 가능:: 인터페이스를 통해 구현 -> 익명 함수가 될 수 있는 ..
0. Monad0.1 Functorinterface Functor { Functor map(Function f);}:: 함수형 프로그래밍의 중요 개념:: 값이나 객체를 감싸고 있는 구조체:: 값을 변형하거나 변환할 수 있는 기능을 제공:: 데이터를 변경하지 않고 새로운 값으로 변형하는 방식 -> 불변성 유지:: 종류로 java에서는 List, Optional가 있음 => "값을 감싸는 컨테이너"=> 값의 데이터 구조 -> 새 값의 데이터 구조 더보기public class FunctorExample { public static void main(String[] args) { List numbers = Arrays.asList(1, 2, 3, 4, 5); // 리스트 생성 ..
0. Enum:: 열거형 - 특정한 집합의 상수들을 정의:: 상수 값을 관리하는 데이터 타입:: 상수 값에 이름을 부여 -> 이를 호출하여 사용- 목적 :: 값의 경우의 수를 제한 -> 파라미터 or 반환 값을 제약 장점- 값 제한 -> 타입 안정성 향상- 코드 가독성 향상- 확장성 -> 각 상수에 메서드 추가 및 특정 동작 정의 가능단점- 고정 값이 정의 -> 추가적인 상수를 동적 정의 X1. Enum의 정의와 사용1.1 기본적인 정의public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}1.2 필드, 생성자, 메서드 추가:: 각 상수에 특정 값을 할당 및 동작 정의 가능:: 각 상수에 대해 , 로 연결하되 ..
0. 상속- Inheritance:: 기존 클래스의 속성과 동작을 새로운 클래스에서 재사용:: 부모 클래스의 필드와 메서드를 자식 클래스가 물려받음예제더보기// 부모 클래스class Animal { String name; void eat() { System.out.println(name + "가 먹는 중입니다."); }}// 자식 클래스class Dog extends Animal { void bark() { System.out.println(name + "가 멍멍 짖습니다!"); }}public class Main { public static void main(String[] args) { Dog myDog = new Dog(); ..
0. Generic:: 클래스, 인터페이스, 메서드에서 사용할 수 있는 타입 매개변수를 정의할 수 있는 기능:: 처리할 타입을 미리 정의하지 않고, 사용하는 시점에서 타입을 지정 가능// 제네릭 Exclass Box { private T value; public void setValue(T value) { this.value = value; } public T getValue() { return value; }}0.1 제네릭 네이밍 컨벤션:: 각각 제네릭에는 의미가 있음에 유의EElementKKeyNNumberTType?anyS, U, V2nd, 3nd, 4nd ...VValue0.2 VS 구분T?의미제네릭 타입 파라미터로 어떤 타입이든 가능와일드 카..
1. Array배열:: 길이가 고정된 값의 나열:: 길이가 고정되어 있기 때문에 add() , delete() 불가=> list로 전환 후에 작업해야 함=> 작업 이후 다시 배열로 전환 필요더보기Integer[] integer_array = new Integer[3]; // 길이 기반 Array 선언 (Integer 요소)Integer[] integer_array = new Integer[]{1, 2, 3}; // 값 기반 Array 선언 (Integer 요소)System.out.println(integer_array.length); Member[] members = { new Member(1, "Aaron"), new Member(2, "Baron"), new Me..
0. inferface0.1 inferface:: 추상화 + 다형성을 위해 사용:: 구현 클래스를 위한 메서드 타입에 대한 명시(제네릭을 포함한..):: 인터페이스 내에 정적 멤버와 정적 메서드 정의 가능 -> 정적 메서드 정의 시 static 생략 불가.인터페이스 추상화:: 가상 필요한 요소를 제외하고 모두 은닉 => 인터페이스(interface) :: 구현체는 가리고 메서드만 노출 => 추상 클래스(abstact class) :: 일부 구현체는 가리고 필요한 필드, 메서드만 노출default 메서드:: 구현 클래스에서 구현하지 않아도 되는 기본 메서드:: default 메서드의 출현으로 private 메서드 또한 사용이 가능해짐 -> default 메서드를 지원해주기 위해:: 그래서..
1. final- 필드 적용:: 해당 필드의 값이 변하지 않음을 의미:: 해당 값이 객체라면 객체 내부의 값은 변경 가능- 메서드 적용:: 상속(Overriding) X:: 해당 메서드가 꼭 한가지 구현으로만 사용되는 경우에 사용(Side-Effect 방지)- 클래스 적용:: 상속(extends) X:: 디자인 패턴의 원칙인 "상속보다는 합성"final int[] FINAL_ARRAY = new int[]{1, 2, 3};FINAL_ARRAY[0] = 10; // 결과 = [10, 2, 3]더보기final 필드 적용 예시final int[] FINAL_ARRAY = new int[]{1, 2, 3};FINAL_ARRAY[0] = 10; // 결과 = [10, 2, 3] 상속 보다는 합성 예시// 상속 ..
3. 정적 팩토리 메서드:: 객체를 생성할 수 있는 방법을 단 하나의 정적 메서드 방식으로만 가능하게 제한팩토리 메서드(Factory Method Pattern):: 캡슐화된 Factory 클래스가 대리하여 객체 생성 및 반:: 클라이언트에서 new 키워드를 통한 생성 X정적 메서드의 의의 => 기존 객체에서 새로운 객체로의 변환// 생성자를 Lombok 어노테이션으로 private 설정 가능@NoArgsConstructor(access = AccessLevel.PRIVATE)@AllArgsConstructor(access = AccessLevel.PRIVATE)// 적용@AllArgsConstructor(access = AccessLevel.PRIVATE)public class Member { p..
- Total
- Today
- Yesterday
- acac
- git
- useMemo
- asac7기
- useState
- Nginx
- asac7#asac
- useEffect
- memo
- ssh
- useContext
- useLayoutEffect
- react
- useCallback
- asac#asac7기
- acas#acas7기
- ASAC
- useReducer
- useRef
- asac7
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |