반응형
- 생성자 대신 정적 팩터리 메서드를 고려2021-03-14 19:23:16클라이언트가 클래스의 인스턴스를 얻는 기법중 정적 팩터리 메서드를 통해 인스턴스를 반환하는 정적 메서드가 있다. 정적 팩터리 메서드의 장점과 단점 장점 이름을 가질 수 있다 생성자에 넘기는 매개변수와 생성자 자체만으로는 반환될 객체의 특성을 제대로 설명하지 못하지만 정적 펙터리 메서드는 이름을 잘 지어 객체의 특성을 묘사 할 수 있다. 하나의 시그니처로는 하나의 생성자만 만들 수 있지만 정적 팩터리 메서드는 그러한 제한을 피해 시그니처가 같은 생성자가 여러개 필요할시 정적 팩터리 메서드로 만들어 줄 수 있다. 호출 될 때마다 인스턴스를 새로 생성하지는 않아도 된다. 불변 클래스는 인스턴스를 미리 만들어 놓거나 새로 생성한 인스턴스를 캐싱하여 재활용하는 식으로 불필요한 객체 생성을 피할 수 있다. 반복되는..
- 백기선 - JAVA STUDY/WEEK152021-03-06 20:16:33목표 자바의 람다식에 대해 학습하세요. 학습할 것 (필수) 람다식 사용법 함수형 인터페이스 Variable Capture 메소드, 생성자 레퍼런스 람다식이란 ? 람다식 사용에 앞서 익명 구현 객체에 대해 알아보자 익명 구현 객체는 인터페이스나 클래스의 객체를 생성해서 사용할 때, 재사용하지 않는 경우 보통 사용한다. 특정 인터페이스를 사용하기 위해 그 인터페이스의 구현체로 클래스를 구현하는 상황에 만약 해당 클래스가 구현체로만 사용하고 클래스 자체는 재사용되지 않는다면 클래스 파일까지 생성해서 관리하는게 부담이다. 그래서 다음과 같이 별도의 클래스를 작성하지 않고 인터페이스를 바로 구현해서 사용하는 방법이 있는데 , 이를 익명 구현 객체라고 부른다. inteface AnonymousInf { void d..
- 백기선 - JAVA STUDY/WEEK132021-03-06 14:30:42목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 스트림/버퍼/채널 기반의 IO 스트림 FIFO 단방향 이기 때문에 입력 스트림과 출력 스트림을 별도로 사용해야한다. 연속된 데이터의 흐름으로 입출력 진행시 다른 작업을 할 수 없는 블로킹 상태가 된다. 입출력 대상을 변경하기 편하며 동일한 프로그램 구조를 유지할 수 있다. 자바 NIO(New I/O) 자바 1.4 버전부터 추가된 API로 넌블로킹 처리가 가능하며, 스트..
- 백기선 - JAVA STUDY/WEEK122021-03-06 14:21:29목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 애너테이션 우선, https://youtu.be/lA1n_HBrFwY 애너테이션이 맞다. 사실 애노테이션이든 애너테이션이든 어노테이션이든 소통하는데 이상없으면 상관 없지만 현지인 발음으로 부르는게 더 좋을 것 같다. ^^ 애너테이션은 기본적으로 주석이라는 뜻을 가지지만 우리가 일반적으로 알고 있는 주석과는 약간 차이가 있다.(코드를 작성할 수 있다는 점, 즉 뭔가를 할 수 있다) 애너테이션은 보통 컴파일러에게 문법 오류를 체크하게 하거나 빌드시 코드를 자동 생성, 런타임 시점에 특정 동작을 하도록 할 때 보통 사용 가능하다. 우리가 평소에 사용..
반응형