java 2

[java] enum 클래스에서의 @AllArgsConstructor

enum에서의 생성자를 사용하기 위해 lombok의 @AllArgsConstructor을 함께 사용하는 경우가 많다. 프로젝트에서 생성자의 접근제어자를 최대한 좁게 설정하는 중에 enum에서도 @AllArgsConstructor를 생성한 기억이 났다. 근데 문제는  1. enum은 package-private, private 생성자를 허용한다. (아니면 아예 컴파일 에러가 난다.) 2. @AllArgsConstructor의 기본 접근 제어자는 이 둘이 아니라 public이다.  나는 따로 accesslevel을 private, package-private 하게 설정을 안해줬는데 왜 컴파일이 되지?라는 생각을 했다. 그래서 컴파일된 파일을 보니까 값을 따로 지정 안해줬는데 생성자가 private하게 생성되..

java 2024.06.27

[Java] 기본 타입 vs 참조 타입

[개요] 자바의 데이터 타입은 기본 타입과 참조 타입으로 나눌 수 있다, 각각의 기본 타입에는 대응하는 참조 타입이 하나씩 있으며, 이를 박싱된 기본 타입이라고 한다. 기본 타입(원시 타입, primitive type) : int, double, boolean, long ... 참조 타입(박싱된 기본 타입, wrapper class) : Integer, Double, Boolean, Long ... [차이] 주된 차이는 다음과 같다. 1. 기본 타입은 값만 가지고 있으나, 참조 타입은 값에 더해 식별성이란 속성을 갖는다. 이러한 이유로, 참조 타입은 값이 같더라도, 서로 다르다고 식별될 수 있다. 그러므로, 참조 타입의 값을 비교하기 위해서는, ==을 사용하면 안된다. [예시] Comparator nat..

java 2023.09.05