본문 바로가기
반응형

public void static main85

[Effective Java] 아이템 41 조금씩 꾸준히! 아자앙자! 힘내! [책 규칙] 노란색 - 자세히 알아보고싶은 부분 초록색 - 핵심 개념 (블로그 정리시는 검은색으로!) 빨간색 - 무슨말인지 모르겠는 부분 [아이템 41] 정의 하려는 것이 타입이라면 마커 인터페이스를 사용하라! 마커 인터페이스? 아무 메서드도 담고 있지 않고, 단지 자신을 구현하는 클래스가 특정 속성을 가짐을 표시해주는 인터페이스! 일반적인 인터페이스와 동일하지만 사실상 아무 메소드도 선언하지 않은 인터페이스를 말한다! 대표적으로 Serializable 인터페이스가 있다! public interface HelloInterface{ } 왜쓸까? 객체의 타입과 관련된 정보를 제공해준다! 컴파일러와 JVM은 이 마커인터페이스를 통해 객체에 대한 추가적인 정보를 얻을 수 있게 .. 2023. 1. 31.
[Effective Java] 아이템 35 으아ㅏㅏ [책 규칙] 노란색 - 자세히 알아보고싶은 부분 초록색 - 핵심 개념 (블로그 정리시는 검은색으로!) 빨간색 - 무슨말인지 모르겠는 부분 [아이템 35] ordinal 메서드 대신 인스턴스 필드를 사용하라 ordinal 메서드? 전체 중에 해당 열거 객체가 몇번째 인지 알려준다! 순서는 0번부터 시작! 모든 열거 타입이 이를 제공한다! 열거 타입 상수와 연결된 정숫값이 필요하면 ordinal 메서드를 이용하려 한다! STOP! // ordinal을 잘못 사용한 예 public enum Ensemble { SOLO, DUET, TRIO, QUARTET, QUINTET, SEXTET, SETPTET, OCTET, NONET, DECTET; public int numberOfMusicians() { .. 2023. 1. 30.
[Effective Java] 아이템 33 (이거 보지마세여! 다시 정리할꺼에요!) [책 규칙] 노란색 - 자세히 알아보고싶은 부분 초록색 - 핵심 개념 (블로그 정리시는 검은색으로!) 빨간색 - 무슨말인지 모르겠는 부분 [아이템 33] 타입 안전 이종 컨테이너를 고려하라! 타입 안전 이종 컨테이너? 한 타입의 객체만 담을 수 있는 컨테이너가 아니라 여러 다른 타입 (이종)을 담을 수 있는 타입 안전한 컨테이너. 타입 안전 이종 컨테이너 패턴 예제 즐겨찾는 인스턴스를 저장하고 검색할 수 있는 Favorites 클래스로 패턴을 보자! // 타입 안전 이종 컨테이너 패턴 - 구현 public class Favorite { // 비한정적 와일드카드 타입이라 이 맵 안에 아무것도 넣을 수 없다고 생각할 수 있지만 그 반대다. // 와일드카드 타입이 중첩(nested) 되었다는 점을 깨달아야 한.. 2023. 1. 25.
[Effective Java] 아이템 32 [책 규칙] 노란색 - 자세히 알아보고싶은 부분 초록색 - 핵심 개념 (블로그 정리시는 검은색으로!) 빨간색 - 무슨말인지 모르겠는 부분 [아이템 32] 제네릭과 가변인수를 함께 쓸 때는 신중하라! 이번 아이템을 나가기 전에 모르는거 먼저 정리하고! 가변인수? 매개변수로 들어오는 값을 개수와 상관 없이 동적으로 인수를 받아 기능하도록 해주는 문법을 지칭한다! print() 메서드로 살펴보자! print("홍길동"); print("홍길동", "이순신"); print("홍길동", "이순신", "유성룡"); print("홍길동", "이순신", "유성룡", "강감찬"); print("홍길동", "이순신", "유성룡", "강감찬", "이도"); 여러개의 파라미터가 들어올 수 있는 메서드를 구성하는 방법은 대표적으.. 2023. 1. 25.
[Effective Java] 아이템 23 4장...에서의 정리는 여기까지.... [책 규칙] 노란색 - 자세히 알아보고싶은 부분 초록색 - 핵심 개념 (블로그 정리시는 검은색으로!) 빨간색 - 무슨말인지 모르겠는 부분 [아이템 23] 태그 달린 클래스보다는 클래스 계층 구조를 활용하라 태그? 해당 클래스가 어떠한 타입인지에 대한 정보를 담고있는 맴버 변수를 의미한다! 단점 쓸데없는 코드들이 많다. 태그에 대한 선언이 필요하기 때문에 열거형 타입 선언, 태그 필드, switch 문 등 쓸데 없는 코드들이 많아진다. 태그에 따른 메서드의 행동이 달라져야 하기 때문에 switch 문이 많아져 가독성이 떨어진다. 메모리를 많이 사용한다. 다른 행동을 위한 코드도 정의되기 때문에 메모리도 많이 사용하게 된다. 불필요한 초기화가 필요하다. 필드를 fina.. 2023. 1. 24.
[Effective Java] 아이템 18 으아아ㅏㅇ 너무 많이 남았어! [책 규칙] 노란색 - 자세히 알아보고싶은 부분 초록색 - 핵심 개념 (블로그 정리시는 검은색으로!) 빨간색 - 무슨말인지 모르겠는 부분 [아이템 18] 상속보다는 컴포지션을 사용하라 상속은 코드를 재사용하는 강력한 수단이지만, 항상 최선은 아니다! 잘못 사용하면 오류를 내기 쉽다! 컴포지션(composition)? Has-a 관계를 구현하기 위한 설계 기술. (상속은 is-a 관계) 기존 클래스를 확장하는 대신 새로운 클래스를 만들고 private 필드로 기존 클래스의 인스턴스를 참조하는 방법을 통해 기능을 확장 시키는 것! 새로운 클래스의 인스턴스 메서드들은 private 필드로 참조하는 기존 클래스의 대응하는 메서드(forwarding method)를 호출해 그 결과를.. 2023. 1. 24.
[Effective Java] 아이템 5 [책 규칙] 노란색 - 자세히 알아보고싶은 부분 초록색 - 핵심 개념 (블로그 정리시는 검은색으로!) 빨간색 - 무슨말인지 모르겠는 부분 [아이템 5] 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 유틸리티 클래스? 프로젝트 진행시 여러 클래스에서 공통적으로 사용되는 메서드가 발생할 수 있다. 이때, 관련된 메서드들끼리 모아서 클래스로 만든다면 중복된 코드가 발생하지 않고 효율적으로 관리할 수 있다. 이를 Utility Class 또는 Helper Class 라고 한다! public class SpellChecker { // 정적 유틸리티를 잘못 하용한 예 - 유연하지 않고 테스트하기 어렵다. private static final Lexicon dictionary = ""; private Spel.. 2023. 1. 24.
[Effective Java] 아이템 17 으아아아ㅏ아ㅏㅏ 최소 2개여서.... 17까지는 하고 자자ㅏㅏㅏㅏㅏ..... [책 규칙] 노란색 - 자세히 알아보고싶은 부분 초록색 - 핵심 개념 (블로그 정리시는 검은색으로!) 빨간색 - 무슨말인지 모르겠는 부분 [아이템 17] 변경 가능성을 최소화 하라 불변 클래스란? 인스턴스의 내부 값을 수정할 수 없는 클래스다. 불변 인스턴스에 간직된 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않는다. 불변 객체는 근본적으로 스레드 안전하여 따로 동기화할 필요 없다. 여러 스레드가 동시에 사용해도 절대 훼손되지 않는다. 불변 객체에 대해서는 그 어떤 스레드도 다른 스레드에 영향을 줄 수 없다. 불변 객체는 자유롭게 공유할 수 있음은 물론, 불변 객체끼리는 내부 데이터를 공유할 수 있다. 불변 객체는 .. 2023. 1. 18.
[Effective Java] 아이템 15 으아아아 내일 스터디인데 스터디 할꺼 많아져서 블로그를 이제쓴다.... 책 읽기도 힘들었따...... [책 규칙] 노란색 - 자세히 알아보고싶은 부분 초록색 - 핵심 개념 (블로그 정리시는 검은색으로!) 빨간색 - 무슨말인지 모르겠는 부분 [아이템 15] 클래스와 멤버의 접근 권한을 최소화하라 잘 설계된 컴포넌트의 가장 큰 차이는 클래스의 내부 데이터와 내부 구현 정보를 외부 컴포넌트로부터 얼마나 잘 숨겼느냐다. 정보 은닉, 혹은 캡슐화라고 하는 이 개념은 소프트웨어 설계의 근간이 되는 원리이다. 정보은닉(캡슐화) 장점 시스템 개발 속도를 높인다. 여러 컴포넌트를 병렬로 개발할 수 있기 때문이다. 시스템 관리 비용을 낮춘다. 각 컴포넌트를 더 빨리 파악하여 디버깅할 수 있고, 다른 컴포넌트로 교체하는 부.. 2023. 1. 18.
반응형