java/이펙티브자바

java/이펙티브자바

5장 제네릭

제네릭을 사용하면 타입을 컴파일러에 알려주고 컴파일러가 알아서 형변환 코드를 추가해 준다. 5장은 이런 제네릭을 사용할 때 주의사항과 팁을 알려준다. 용어 정리 제네릭 타입 제네릭 클래스/인터페이스 : 클래스와 인터페이스 선언에 타입 매개변수가 쓰인다. (List) 제네릭 클래스/인터페이스를 통틀어 제네릭 타입이라 한다. 매개변수화 타입 각 제네릭 타입은 일련의 매개변수화 타입을 정의한다. 이름 (List) 로 타입 제네릭 타입을 하나 정의하면 로 타입도 함께 정의된다. 로 타입은 제네릭 타입에서 타입 매개변수를 전혀 사용하지 않을 때를 말한다. (List에서 List) 타입 선언에서 제네릭 타입 정보가 전부 지워진 것처럼 동작한다. (제네릭 없던 코드와 호환되기 위함) 한글 용어 영문 용어 예 매개변수..

java/이펙티브자바

4장 클래스와 인터페이스

4장은 클래스와 인터페이스를 사용할 때 주의할 점과 유용한 팁을 알려준다. 15. 클래스와 멤버 접근 권한 최소화 잘 설계된 컴포넌트는 내부 구현 정보를 완벽하게 숨겨, 구현과 API를 깔끔하게 분리한다. 다른 컴포넌트와 소통할 때에는 오직 API만 사용하고 서로의 내부 동작 방식은 알 필요가 없다. 이 개념은 정보 은닉 또는 캡슐화로, 소프트웨어 설계의 근간이 되는 원리다. 정보 은닉 장점 정보 은닉을 잘 하면 컴포넌트들을 서로 분리해 개발, 테스트, 최적화, 적용, 분석, 수정을 개별적으로 할 수 있게 해준다. 여러 컴포넌트 병렬로 개발해 개발 속도 높임 컴포넌트 파악이 쉽고 교체 부담도 적어 시스템 관리 비용 낮춤 성능 최적화에 도움을 줌 소프트웨어 재사용성 높임 개별 컴포넌트 동작을 검증할 수 있..

java/이펙티브자바

3장 모든 객체의 공통 메서드

3장은 모든 Object를 상속받는 객체가 공통적으로 가지는 equals와 hashcode, tostring과 같은 final이 아닌 메서드를 구현할 때 주의할 점에 대해 다룬다. 10. equals 재정의 java에서는 객체 식별성을 확인해 동치성을 확인한다. 이때 논리적인 동치성을 확인해야 할 때 equals를 재정의해야 한다. equals를 재정의하지 않는 상황 각 인스턴스가 본질적으로 고유할 때 동작하는 개체를 표현하는 클래스 (Thread) 인스턴스의 논리적 동치성을 검사할 일이 없을 때 상위 클래스에서 재정의한 equals가 하위 클래스에 딱 맞을 때 대부분의 Set 구현체 : AbstractSet이 구현한 equals를 상속받아 사용 클래스가 private, package-private이고 ..

java/이펙티브자바

2장 객체 생성과 파괴

이전부터 이펙티브 자바 책을 보고 싶었는데, 2월 한 달 동안 이 책을 보려고 한다. 원래는 클린 코드를 마저 보려고 했으나 자바를 깊이 있게 이해하고, 공부한 후에 클린 코드 책을 보는 것이 더 도움이 될 것 같아 이펙티브 자바를 먼저 보게 되었다. 그동안 깊게 생각하지 않고 권장되는 방법으로 사용하던 것들도 있고, 지양해야 하는 방법을 사용한 적도 있다. 앞으로 짜게 될 코드들은 모두 이유가 있는 코드들이길 바란다. 2장은 객체를 생성하고 파괴하면서 주의해야 할 점들에 관한 내용이다. 객체를 어떻게 생성하는지, 어떤 객체를 생성해야 하는지, 파괴를 언제 어떻게 하는지 등과 같이 알고 사용하면 너무 좋은 내용들로 구성되어 있었다. 싱글톤이면 어떤 것이 좋은지 모르고 싱글톤으로 만들어 사용하거나, 의존 ..

hahihi
'java/이펙티브자바' 카테고리의 글 목록