![카드 발동 제네릭 와일드카드?(feat. 이펙티브 자바)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmLMgZ%2FbtsKPacCSrH%2FdgMkFotkriCzFdDo1cbRJk%2Fimg.png)
이펙티브 자바 스터디를 하고 있는데, 2주전까지의 파트는 제네릭이었음 보통 Controller 짤 때 Map에 때려 넣는 곳이 진짜 많은데 Map이랑 같이 제네릭을 많이 쓰는 것 같음그래서 한 번 공부하면 머리에 남지도 않으니 제네릭에 대한 것 전부 다 정리해보자 그리고 코틀린에서는 겸사겸사 제네릭 어떻게 쓰는지, 있는지도 알아보자.1. 제네릭을 알아보기 전, 공변과 불공변에 대해 알아보자.배열은 공변이고, 제네릭은 불공변이다.공변은 자기 자신과 자식 객체로 타입 변환을 허용해주는 것이다.🍂 먼저, Java 타입 계층 구조 알아보기Object가 최상위 클래스Java의 모든 클래스는 Object를 직접 또는 간접적으로 상속받는다. 이는 모든 참조 타입이 Object 타입으로 취급될 수 있음을 의미한다.S..
![NullPointException에 대해 알아보자.](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb58MLK%2FbtsKmlGz7D2%2Fn4kfPrbPcqzUxHh3laQupk%2Fimg.png)
예전에 작성한 독서 후기인 필독 개발자 온보딩 가이드 2장에 보면 NullPointException에 대한 설명을 적어뒀는데 자바 기본 다시 공부하면서 나와서 한 번 더 정리할 겸 정리해봄NullPointException1. Null이란?택배를 보낼 때 제품은 준비가 되었지만, 보낸 주소지가 아직 결정되지 않아서, 주소지가 결정될 때까지는 주소지를 비워둬야 한다.참조형 변수에는 항상 객체가 있는 위치를 가르키는 참조값이 들어간다. 그런데 아직 가리키는 대상이 없거나 가리키는 대상을 나중에 입력하고 싶다면? null을 넣어둘 수 있다.null은 값이 존재하지 않는, 없다는 뜻으로 만약 계속 인스턴스를 아무도 참조 하지 않는다면 JVM의 GC(가비지 컬렉션)가 더이상 사용하지 않는 인스턴스라 판단하고 해당 ..
![이펙티브 자바 item 01. 생성자를 대신 정적 팩토리 메서드를 고려하라](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTAvTS%2FbtsKhef0klF%2FUCSWNQeYFUS7PbZIRLLv91%2Fimg.jpg)
1장 들어가기이 책은 성능에 집중하는 부분은 많지 않다. 대신 프로그램을 명확하고, 정확하고, 유용하고, 견고하고, 유연하고, 관리하기 쉽게 짜는데 집중한다.기술 용어는 대부분 자바8용 언어 명세를 따르며, 자바가 지원하는 타입은 인터페이스(interface), 클래스(class), 배열(array), 기본 타입(primitive) 총 네 가지다.애너테이션(anntation)인터페이스의 일종열거 타입(enum)클래스의 일종참조 타입(Reference type)인터페이스, 클래스, 배열즉, 클래스의 인스턴스와 배열은 객체(object)인 반면, 기본 타입 값은 그렇지 않다.클래스의 멤버필드(field)메서드(method)멤버 클래스멤버 인터페이스메서드 시그니처는 메서드 이름과 입력 매개변수(paramete..
![🤔 자바 기초 배울 때 앞쪽에 나오는 상속 왜 현업에서는 잘 안쓴다고 하는 걸까? (feat. 코틀린에서 상속은?)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvpAv3%2FbtsKhxlf9cv%2FyKb1fkk2kFmmEUx7vktx31%2Fimg.jpg)
이펙티브 자바 스터디를 9월부터 하고 있는 중인데 저번주 주제 중에 상속을 아무때나 사용하지 말고 주의해서 사용하라라는 주제가 나왔었다.. 근데 주의점이 너무 많아서 그러면 상속을 안쓰면 되는 거 아닌가요? 하는 말이 나왔었음 스터디원이 정리한 것 중에 아래와 같은 글도 있었다.💬 Java의 창시자인 제임스 고슬링(James Arthur Gosling)이 한 인터뷰에서 "내가 자바를 만들면서 가장 후회하는 일은 상속을 만든 점이다"라고 말했다.조슈야 블로크의 Effective Java에서는 상속을 위한 설계와 문서를 갖추거나, 그럴 수 없다면 상속을 금지하라는 조언을 한다.따라서 추상화가 필요하면 인터페이스로 implements 하거나 객체 지향 설계를 할땐 합성(composition)을 이용하는 것이..