# EffectiveJava

29개의 포스트

Effective Java (1) - 객체 생성과 소멸(파괴)

Effective Java(이펙티브 자바) 3판 - 조슈아 블로크 (옮긴이 개앞맵시(이복연) 펴낸이 한기성) / 인사이트 (2018)

2021년 7월 19일
·
0개의 댓글
post-thumbnail

Use List not Array.

Effective Java Item 28이번 주제는 Java언어에 국한 되지않고 정말 중요한 내용이 많이 있습니다개발을 하다가 한번쯤은 고민해볼만한 주제인 Array와 List 둘 중 무엇을 써야할까입니다. 언제 List를 써야하고 언제 Array를 왜 사용해야할 지

2021년 5월 27일
·
0개의 댓글
post-thumbnail

Remove Unchecked Warning!

Effective Java Item 27 비검사 경고를 제거하라에 대한 내용을 정리하겠습니다.소프트웨어 개발을 하다보면 어떤 언어이든 프레임워크든 항상 마주치는 warning들이 있습니다. 너무 많은 warning을 다양한 레벨에서 쏟아내서 보기 힘들 정도도 있습니다.

2021년 5월 27일
·
0개의 댓글
post-thumbnail

Don't use raw type in Java Generic

Effective Java Item 26 Raw type은 사용하지말라에 대한 내용 정리입니다.우선 제네릭 클래스 혹은 제네릭 인터페이스에 대한 정의부터하겠습니다. 클래스와 인터페이스 선언에 타입 매개변수(type parameter)가 쓰이면, 이를 제네릭 클래스 혹은

2021년 5월 27일
·
0개의 댓글

Release reference that is unused

자바에서는 메모리관리는 개발자가 아닌 GC(Gabage Collector)가 처리해줍니다. 하지만 전혀 메모리관리에 신경쓰지 않아도 된다고 오해해서는 안됩니다. 스택을 구현한 간단한 코드를 보겠습니다.위 코드는 왠만한 테스트는 모두 통과할 것 같습니다.(그만큼 간단하니

2021년 5월 23일
·
0개의 댓글
post-thumbnail

Avoid to create useless instance

개발자가 가져야할 중요한 소양 중 하나로 중복을 피하는 것. 즉, 불필요한 것을 만들지 않아야하는 것에 관련된 내용입니다.이펙티브 자바 3판의 아이템 6에 대한 내용입니다.똑같은 객체를 매번 생성하기 보다는 객체 하나를 재사용하는 편이 나을 때가 많습니다.재사용은 빠르

2021년 5월 23일
·
0개의 댓글

Use Dependency Injection!

아마 IoC or DI 컨테이너 프레임워크를 한번 쯤 개발자들이 사용해봤을 것입니다. 각 클래스간에 의존성을 framework 수준에서 관리하게 해주는 프레임워크의 근간은 이번에 소개할 의존 객체 주입이라는 간단하면서도 강력한 방법입니다.아마 기초 수준의 프로그래밍에서

2021년 5월 23일
·
0개의 댓글

Singleton using private constructor and Enum type

Effective Java 3판의 Private 생성자나 열거 타입으로 싱글턴임을 보장하라 Item 3을 참고해서 Singleton을 정리해보겠습니다.다른 디자인 패턴은 몰라도 대부분의 개발자는 Singleton이 무엇인지는 잘 알고 있을 것이라 생각합니다.오직 하나의

2021년 5월 23일
·
0개의 댓글
post-thumbnail

Consider Builder if parameter so much in constructor

정적 팩토리 메서드와 생성자 둘 다 제약이 하나 있습니다. 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 것입니다. 빌더 패턴 이외의 방법들을 우선 살펴보겠습니다.매개변수가 많을 경우, 프로그래머들은 점층적 생성자 패턴(telescoping constructor

2021년 5월 17일
·
0개의 댓글
post-thumbnail

Consider static factory method rather than constructor

Effective Java 아이템 1의 내용을 정리한 글입니다.생성자 대신 정적 팩터리 메서드를 고려하라.보통 자바에서 객체를 생성할 때, new keyword를 통해서 생성합니다.하지만 모든 프로그래머가 알아둬야할 기법이 있습니다. 클래스는 생성자와 별도로 정적 팩터

2021년 5월 17일
·
0개의 댓글
post-thumbnail

Effective Java 3/E 정리

어떤 공부를 해야지 더 성장을 할 수 있을까에 대한 고민이 많았는데 적당한 공부거리를 발견한 것 같습니다. 정리를 잘해보고 알맞는 예제 코드도 찾아보고 작성해보겠습니다. 감사합니다.

2021년 5월 16일
·
0개의 댓글

[JAVA] String, StringBuffer, StringBuilder

문자열의 + 연산이 많아진다면 메모리, 시간 두 관점 모두에서 손해를 많이보게 된다.이를 위해 StringBuffer와 StringBuilder 클래스가 제공되는데 StringBuffer는 멀티쓰레드에 안전하도록 동기화가 되어있다. 멀티쓰레드로 작동되는 프로그램이라면

2021년 5월 4일
·
0개의 댓글

[JAVA] 라이브러리

이미 많은 뛰어난 프로그래머들의 수많은 연구를 통해 라이브러리가 제공되고 있다. 기능을 직접 구현하기보다 라이브러리를 잘 찾아서 사용하자.라이브러리를 이용한다면 다른 프로그래머도 코드읽기에 수월할수 있다.Random 클래스보다 ThreadLocalRandom 으로 대체

2021년 5월 4일
·
0개의 댓글

정적 팩토리 메소드

전통적으로 인스턴스를 얻는 수단은 Public 생성자다.간단히 이야기하면 좀 어려울 수 있는데, Method 를 Static 으로 설정해 둔것이라고 간단히 이해하고 글을 읽으면서, 아래의 옵션들에 맞게 구성하면 된다.예시로는 String.valueOf(10) 이라하면

2021년 1월 1일
·
0개의 댓글
post-thumbnail

[Item17] 변경 가능성을 최소하라

불변클래스란(Immutable Class) ? 해당 객체의 내부적인 값들을 변경할 수 없는 클래스를 의미한다. 불변 클래스는 해당 객체가 파괴되는 순간까지 절대 달라지지 않는다.불변 클래스는 가변 클래스보다 설계하고 구현하기 쉽고, 사이드 이펙트로부터 안전하다.클래스를

2021년 1월 1일
·
0개의 댓글
post-thumbnail

[Item16] public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라

예시 코드를 하나 보도록 하겠습니다.위와 같은 class는 public이기 때문에 데이터 필드에 직접 접근할 수 있기 때문에 캡슐화의 이점을 제대로 살리지 못한다. 위와 같은 class는 불변성을 보장할 수 없고, 외부에서 접근할 때 부수 작업을 수행할 수도 없습니다.

2021년 1월 1일
·
0개의 댓글
post-thumbnail

[Item15] 클래스와 멤버의 접근권한을 최소화하라

앞으로 나오는 package-private은 접근제한자 default와 동일하다고 본다.잘 설계된 컴포넌트와 잘 설계하지 못한 컴포넌트는 내부 데이터를 외부에 얼마나 잘 숨겼는가만 봐도 알 수 있다. 잘설계된 컴포넌트는 모든 내부 구현을 완벽히 숨겨 구현과 API를 깔

2020년 12월 27일
·
0개의 댓글
post-thumbnail

[Item14] Comparable을 구현할지 고려하라

Item14는 Comparable Interface의 메서드인 compareTo()에 대한 내용을 다룬다.compareTo 메서드는 Object의 메서드가 아닌 Comparable 메서드이며 두가지만 빼면 Object 클래스의 equals와 같다.compareTo 메서

2020년 12월 27일
·
0개의 댓글
post-thumbnail

[Item13] clone 재정의는 주의해서 진행하라.

Cloneable 는 복제해도 되는 클래스라는것을 명시하는 용도의 인터페이스 이지만, clone메서드가 선언된 곳이 Cloneable 클래스가 아닌 Object 클래스이다또한 clone 메서드는 protected로 되어있다. 그래서 외부 객체에서 clone 메서드를 호

2020년 12월 27일
·
0개의 댓글
post-thumbnail

[Item11] equals를 제정의하려거든 hashCode도 재정의하라

위에 적어놓은 소제목 처럼 hashCode를 재정의하지 않는다면 일반 규약을 어기게 되어 HashMap이나 HashSet같은 Collection에서의 원소로 사용될 때 문제를 일으키게 된다.equals에 사용되는 핵심 필드가 변경되지 않았다면 , 실행되는 동안 hash

2020년 12월 20일
·
0개의 댓글