JAVA

JAVA/Effective JAVA

2장 : 객체의 생성과 파괴

2장은 자바에서 사용하는 객체의 생성자, 싱글톤 객체, GC와 관련한 내용을 다룹니다. 1. 생성자를 직접 사용하기보단 정적 팩토리 메소드 팩토리 메소드에 이름을 붙임으로써 객체를 더 가독성 있게 생성 새로 생성될 필요가 없는 객체를 기존에 존재하는 객체로 반환 ex.싱글톤 반환 객체 타입의 하위 클래스 객체들도 반환할 수 있는 다형적인 동작 2. 생성자에 매개 변수가 많다면 Builder 객체 생성에 필수적이지 않은 필드까지 고려한 많은 생성자 오버로딩은 코드의 양을 늘리는 주범 사용자의 필드값 설정이 가능한 필드만 빌더로 열 수 있음 3. 싱글톤 객체 : private 생성자와 Enum 사용 싱글톤 객체를 만들기 위해선 생성자를 private으로 둬 객체 생성을 막아야함 private static f..

JAVA

Optional

어떤 프로그래밍 상황에서든 null checking은 필수다. 존재하지 않는 변수의 메소드나 필드를 참조해서 발생하는 NPE는 깔짝깔짝 나타나 버그를 일으켜 개발자를 짜증나게 한다. 메소드 시작점에서 입구컷을 하거나, @NonNull같은 어노테이션을 사용하거나, null일 경우 아예 직접 인스턴스를 만드는 등의 여러 방법을 사용할 수 있다. 오늘은 그 중 하나인 Optional 클래스를 살펴보겠다!! 1. Optional이 없는 상황 Student 클래스가 있다. @RequiredArgsConstructor public class Student { private final String name; private final int num; public boolean hasSameName(String name..

JAVA

enum

1. Enum이 뭔가요 한마디로 "정적 클래스"라고 부를 수 있다. enum 안에 정의된 클래스들은 싱글톤이다. 예를들어, Game이라는 enum 클래스 안에 여러 개의 게임을 정의한다고 해보자. 기본 문법은 다음과 같다. 클래스 이름을 ","로 구분하는 것이다. public enum Game { MAPLE_STORY, LOST_ARK, ANIMAL_CROSSING, OVER_WATCH, LEAGUE_OF_LEGEND; } Game이라는 enum 타입 안에 MAPLE_STORY, LOST_ARK, ..., LEAGUE_OF_LEGEND라는 클래스가 정의되었다. 각각의 enum 객체들은 전술했듯 싱글톤이기 때문에 자바 프로세스가 실행되는 동안 한 개 존재하며, 여기저기서 상수처럼 쓰일 수 있다. 기본적으로..

JAVA

Java Exception

자바를 공부했다고 한다면 몰라선 안되는 Exception에 대해 훑어보겠다. 자바는 클래스에 미친 언어인 만큼(내 의견이며 오라클과는 관련X), 오류와 예외까지 클래스로 관리한다. 1. Error VS Exception 자바의 malfunction은 크게 두 가지, Error(오류)와 Exception(예외)로 나뉜다. # Error : 프로그램 외적으로 발생하는 오류 OOM(Out Of Memory) 났는데 램 할당량 늘려야할듯요? 스택 오버플로 났는데 무한재귀 없나 확인해봐! 자바 프로그램 시작이 안되는데요.. 포트 문제인지 뭔지 감이 안잡혀. 앞선 내용들은 자바 프로그램이 아닌 하드웨어와 관련해서 문제가 생긴 예시들이다. (잘못 쓰여져 무한루프 도는 프로그램으로 인해 발생하는 경우도 있지만 어쨌든 ..

김부추
'JAVA' 카테고리의 글 목록 (2 Page)