규칙 4. 객체 생성을 막을 때는 private 생성자를 사용해라
정적 메서드나 필드만 모은 클래스가 필요한 경우는 다음 세가지로 볼 수 있다.1.자바의 기본 자료형 값 또는 배열에 적용되는 메서드를 한군데 모아둘 때.(java.lang.Math, java.lang.Arrays)2.특정 인터페이스를 구현하는 개체를 만드는 팩터리 메서드 등의 정적 메서드를 모아놓을 때(java.util.Collection)3.final 클
정적 메서드나 필드만 모은 클래스가 필요한 경우는 다음 세가지로 볼 수 있다.1.자바의 기본 자료형 값 또는 배열에 적용되는 메서드를 한군데 모아둘 때.(java.lang.Math, java.lang.Arrays)2.특정 인터페이스를 구현하는 개체를 만드는 팩터리 메서드 등의 정적 메서드를 모아놓을 때(java.util.Collection)3.final 클
String 클래스String은 내부의 문자열을 수정할 수 없다. StringBuffer()메소드는 내부의 문자를 대치하는 것이 아니라, 대치된 새로운 문자열을 리턴한다.문자열을 결합하는 + 연산을 많이 사용하면 할수록 그만큼 String 객체의 수가 ㅇ늘어나기 때문에 프로그램 성능을 느리게 한다. 문자열을 변경하는 작업이 많을 경우 StringBuffer
중첩클래스의 접근 제한1234567891011121314151617181920212223242526272829public class A { int field1; void method1( ) { } static int field2; static void method2( ) { } class B { voi
한 클래스가 여러 클래스와 관계를 갖을 땐 독립적으로 선언하는것이 좋다. 하지만 특정 클래스와 관계를 맺을 땐 내부에 선언하여 불필요한 관계 클래스를 감추고 코드의 복잡성을 감출 수 있게된다. 중첩클래스중첩클래스는 크게 두가지로 나뉘는데 다음과 같다.멤버클래스 - 클래스의 멤버로서 선언되는 중첩클래스. 멤버클래스는 static 여부에 따라 인스턴스 멤버클래
인터페이스의 디폴트 메소드는 자바8부터 나왔다고 한다.. 알아두자.선언은 인터페이스에 하고 사용은 구현객체에서 한다. 왜 이걸 만들었을까?기존 인터페이스를 확장해서 새로운 기능을 추가하기 위해서 특징?디폴트 메소드는 정의된 형태이므로 implemets했을 때 해당 메소드의 구현을 강제하지 않는다. 디폴트 메소드는 다음과 같이 정의할 수 있다. default
어노테이션어노테이션은 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지를 알려주는 정보이다.@가 붙는 형태로 정의된다. 어노테이션은 다음의 용도로 사용된다. 123컴파일러에게 문법에러 체크 ex(@Override)개발 툴이 코드를 자동 생성할 수 있도록 정보제공실행시 특정기능을 실행하도록 정보제공 어노테이션 정의 및 사용법어노테이션 정
규칙3 생성자나 enum 자료형은 싱글턴 패턴을 따르도록 설계해라싱글턴 : 객체를 하나만 만들 수 있는 클래스. 창관리자, 파일 시스템 같은 것들이 그 예다. 싱글턴을 구현하는 방법은 두가지인데 두 방법 다 생성자는 private로 선언하고, 싱글턴 객체는 정적(static)멤버를 이용한다. 첫번째 방법의 경우 정적멤버는 final로 선언한다. 두 번째 방