JAVA
-
#Builder 패턴JAVA 2021. 5. 11. 12:02
객체를 생성하다보면 생성자를 만드는데에서 몇 가지의 문제점이 발생한다. 1. 필드의 인자값의 필요성에따라 생성자가 여러개가 될 수 있다. 2. 생성자의 순서에따라 잘못된 자료형을 삽입 할 수 있는 문제가 생길 수 있다. 이문제는 코드를 실행하기 전까지는 문제를 찾을 수가 없다. 3. 무분별한 생성자 사용으로 유지보수 측면에서 코드를 읽기 어려워질 수 있다. 예를들어 Order이라는 객체가 있을때 Item item = new Item(1,1300,"pancel"); 이렇게 매개변수를 넣게되면 어떤 정보인지 식별하기 어렵다. 하지만 이러한 방법은 Setter를 사용함으로서 어느 정도는 극복할 수 있다. Item item = new Item(); item.setCount(1); item.setPrice(130..
-
컬렉션 프레임웍과 함수형 인터페이스JAVA 2021. 4. 5. 18:03
함수형 인터페이스를 사용하는 컬렉션 프레임웍의 메서드(와일드 카드 생략) 인터페이스 메서드 설명 Collection bollean removeif(Predicate filtter) 조건에 맞는 요소를 삭제 List void replaceAll(UnaryOperator operator 모든 요소를 변환하여 대체 Iterable void forEach(Consumer action) 모든 요소에 작업 action을 수행 Map V compute(K key, BiFunction f) 지정된 키의 값에 작업 f를 수행 V computeIfAbsent(K key, Function f) 키가 없으면, 작업 f 수행 후 추가 V computeIfPresent(K key, BiFunction f) 지정된 키가 있을 때,..
-
인터페이스 Predicate<T>JAVA 2021. 4. 5. 17:09
Predicate ? Predicate input에 대한 result가 boolean으로 나오cate input에 대한 result가 boolean으로 나오는 interface이다. ex) Predicate p = i -> i%2 = 0; result = true or false Predicate의 결합 and() - &&, or() -||, negate() - !로 두 Predicate를 하나로 결합(default 메서드) Predicate p = i -> i i i%2 == 0; Predicate notP = p.negate(); // i >= 100 Predicate all = notP.and(q).or(r..
-
람다식JAVA 2021. 4. 5. 16:39
람다식 특징 1. 함수 (메서드)를 간단한 ' 식'으로 표현하는 방법 2. 익명 함수(이름이 없는 함수 , anonymous function) 메서드를 람다로 바꿀떄 반환타입과 메서드 이름을 지우고 () { 이 사이에 -> 화살표를 넣는다 이름이 없어지기때문에 익명함수라고 말한다. 3.메서드를 간단히 표현하기 위한것. int max(int a, int b){ return a > b ? a: b; // (a,b) -> a > b ? a : b } 함수와 메서드의 차이 - 근본적으로는 동일, 함수는 일반적용어, 메서드는 객치지향 개념 용어이다. - 함수는 클래스에 독립적' - 메서드는 클래스에 종속적 람다식 작성하기 1. 메서드의 이림과 반환타입을 제거하고 '->'를 블록{} 앞에 추가한다. int max3..
-
JAVA란?JAVA 2021. 3. 4. 23:47
프로그램(Program) 컴퓨터를 위한 작업 지시서로서 구체적으로 컴퓨터가 특정한 작업을 위한 명령어들의 리스트 명령어(Instruction) CPU가 수행하는 기초적인 연산 기계어 컴퓨터가 이해하는 단 하나의 언어 컴파일러(Compiler) 통역을 담당하는 소프트웨어로서 인간이 프로그래밍 언어를 배워서 프로그램을 작성하면 기계어로 바꾸어 준다. Byte Code 자바 컴파일러가 특정한 컴퓨터를 위한 코드를 바로 생성하지 않고 가상적인 기계를 위해 생성하는 코드 JAVA 개발자 Sun Microsystems사의 제임스 고슬링(James Gosling) JAVA Language java는 세계에서 가장 널리 쓰이는 프로그래밍 언어이다. 간단한 PC용 소프웨어나 게임, 웹어플리케이션은 물론..