728x90
반응형

전체 글 168

[Effective Java] 아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라.

class Singleton { // LazyHolder Singleton pattern private Singleton(){}; private static class LazyHolder{ public static final Singleton instance = new Singleton(); } // getInstance()를 호출했을때 LazyHolder 클래스가 로딩되면서 생성 // 장점 : 객체가 필요한 시점에서 초기화가 진행된다. public static Singleton getInstance(){ return LazyHolder.instance; } } 객체를 오직 하나만 생성하여 활용하는것을 싱글턴이라고 한다. 싱글턴을 만들때 반드시 고려해야하는 사항은 무상태 객체이다. 참고 자료 Joshua..

Java 2022.05.24

[Effective Java] 아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라.

if. 생성자의 매개변수가 많다면 ❓ public class User { private long userSn; private String userId; private String userPw; public User(long userSn) { this.userSn = userSn; } public User(long userSn, String userId) { this.userSn = userSn; this.userId = userId; } public User(long userSn, String userId, String userPw) { this.userSn = userSn; this.userId = userId; this.userPw = userPw; } } 점층적 생성자 패턴도 쓸 수는 있지만, 매개..

Java 2022.05.24

[Effective Java] 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라.

클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자다. 하지만 모든 프로그래머가 꼭 알아둬야 할 기법이 하나 더 있다. 클래스는 생성자와 별도로 정적 팩터리 메서드를 제공할 수 있다. ✅ 정적 팩터리 메서드는 디자인 패턴에서의 팩터리 메서드와 다르다. 👍 장점 1️⃣ 이름을 가질 수 있다. class Member { private String mbrId; private String mbrPw; public static Member ofMemberIdAndMbrPw(String mbrId, String mbrPw) { Member member = new Member(); member.setMbrId(mbrId); member.setMbrPw(mbrPw); return member; }..

Java 2022.05.24

[Database] MySQL to Oracle

MySQL to Oracle MySQL 5.6 version → Oracle 12 version 현재 MySQL을 Oracle로 변경하는 작업을 진행중이다. * 어려운 쿼리는 없었으나 수정된 내용에 대해서 기록을 남기려고 한다. 1. MySQL 의 GROUP BY는 Alias 명을 통해서도 가능하며 선언한 컬럼을 MAX, MIN, SUM 등의 함수로 쓰지 않아도 Default로 MIN 값으로 적용된다. ex ) 아래 처럼 MySQL은 Alias명으로 바로 GROUP BY를 처리할 수 있으며 선언하지 않은 ID는 Defalut로 MIN 값으로 적용된다. -- MySQL SELECT ID, NAME AS NM, SUM(SCORE) AS SUM FROM STUDENTS GROUP BY NM; -- Oracle..

Database 2021.07.31

[Java] Comparator 와 Comparable

Arrays.sort()를 호출만 하면 컴퓨터가 알아서 배열을 정렬하는 것처럼 보이지만, 사실은 Comparable의 구현에 의해서 정렬되었던 것이다. 선언형태와 이름이 다를 뿐 두 객체를 비교한다는 같은 기능을 목적으로 고안된 것이다. 인터페이스 특징 Comparable 기본 정렬기준을 구현하는데 사용 Comparator 기본 정렬기준 외에 다른 기준으로 정렬하고자할 때 사용 순서를 고려해야 하는 값 클래스를 작성한다면 꼭 Comparable 인터페이스를 구현해야한다. 또한 compareTo 메서드에서 필드의 값을 비교할 때 연산자는 쓰지 말아야한다. 그 대신 박싱된 기본 타입 클래스가 제공하는 정적 compare 메서드나 Comparator 인터페이스가 제공하는 비교자 생성 메서드를 사용하자.

Java 2021.01.23

[Java] 컬렉션 프레임워크

컬렉션 프레임워크 ( Collections Framework ) 다수의 데이터 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미 * 주요 인터페이스 인터페이스 순서 중복 List O O Set X X Map X key : X value : O * 실제 개발 시에는 다루고자 하는 컬렉션의 특징을 파악하고 어떤 인터페이스를 구현한 컬렉션 클래스를 사용해야하는지 결정해야하므로 각 인터페이스의 특징과 차이를 잘 이해하고 있어야한다.

Java 2021.01.23
728x90
반응형