들어가기 전 이 글은 인프런 백기선님의 Effective Java를 복습하며 작성한 글입니다. Item3 완벽 공략에서 다루었던 내용입니다. 완벽 공략 11. 메서드 참조 메서드 참조(Method Reference)는 메서드 하나만 호출하는 람다 익스프레션을 줄여쓰는 방법을 의미한다. 메서드 참조는 코드를 좀 더 간결하게 사용할 수 있다는 장점이 있다. 메서드 레퍼런스 아래 4 종류가 존재하고, 메서드 레퍼런스 관련 Docs는 아래에서 확인할 수 있다. 스태틱 메서드 레퍼런스 인스턴스 메서드 레퍼런스 임의 객체의 인스턴스 메서드 레퍼런스 생성자 레퍼런스 Docs https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html 메서드 참조..
들어가기 전 이 글은 인프런 백기선님의 이펙티브 자바 강의를 복습하며 작성한 글입니다. 아이템3. 생성자나 열거 타입으로 싱글턴임을 보장하라. 어플리케이션에서 여러 인스턴스가 아닌 하나의 인스턴스만 필요하거나 유지해야하는 경우가 있다. 예를 들면 설정 관련 인스턴스가 있을 수 있다. 어떤 게임을 할 때, 색상 값은 무엇이고 해상도는 무엇인지를 설정할 수 있다. 그런데 설정을 가지고 있는 인스턴스가 여러 개가 있다면 헷갈리거나 오동작할 수 있다. 이런 경우가 있을 수 있기 때문에 어플리케이션에서 특정 인스턴스는 하나만 유지해야하는 경우도 있다. 이런 것을 싱글턴이라고 한다. 싱글턴의 장/단점은 다음과 같다. 장점 : 간결하고 싱글턴임을 API에 드러낼 수 있다. 단점 1. 싱글톤을 사용하는 클라이언트를 테..
자바 Primitive Type / Reference Type 데이터 타입은 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려준다. 자바에는 크게 Primitive Type(기본형 타입)과 Reference Type(참조형 타입)이 존재한다. 그렇다면 각 타입은 어떤 차이점을 가지고 있을까? 기본형 타입(Primitive Type) 기본형 타입은 기본값을 가지고 있다. 기본값이 존재하기 때문에 Null이 존재하지 않는다. 기본형 타입은 8가지가 존재한다. 기본형 타입은 실제 값을 스택(Stack) 메모리에 저장한다. 변수의 선언과 동시에 메모리에 생성됨. 컴파일 시점에 담을 수 없는 값을 담으려 하는 경우 컴파일 에러가 발생한다. Null을 넣을 수 없기 때문에 ..
들어가기 전 이 글은 자바의 정석 7장을 공부하고 개인적으로 정리한 글입니다. 1. Java의 상속 상속은 기존의 클래스를 재사용하여 새로운 클래스를 생성하는 작업이다. 상속을 통해서 클래스를 작성하면 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 공통된 코드를 한 곳에서 관리할 수 있다. 아래와 같이 정리해 볼 수 있다. 클래스 간에 부모 - 자식 관계는 있다. 그렇지만 형제 관계는 존재하지 않는다. 부모의 모든 것은 자식에게 상속된다. 하지만 자식에서의 변경점은 부모에게 영향을 미치지 않는다. 부모 클래스의 private인 필드 / 메서드는 자식 클래스에서 사용할 수 없다. 자식 클래스를 생성할 때 부모 클래스가 생성되고, 그것이 자식 클래스에게 포함되어 사용되기 때문이다. 자식 클래스를 통해 ..
스트림이란? 스트림은 Collection 계열을 다루는 방식을 표준화하는데 많은 도움이 된다. 예를 들어 List를 정렬하기 위해서는 Collection.sort()를 사양했다. 배열을 정렬할 때는 Arrays.sort()를 사용했다. 그런데 스트림을 사용하면 sotr()로만 이런 Collectino 무리들을 손쉽게 정렬할 수 있다. 쉽게 말하면 스트림은 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드를 정의해둔 것이다. 추상화 되었다는 말은 공통된 방법으로 다룰 수 있게 되었다는 것이다. 이렇게 되면 코드 재사용성이 증가한다. 스트림의 특징 스트림은 데이터 소스를 변경하지 않는다. 스트림은 데이터 소스를 읽기만 한다. 실제 데이터 소스를 스트림은 변경하지 않는다. 스트림은 일회용이다...