1. boolean, Boolean 차이
Java에서 데이터 타입(자료형)은 기본형(Primitive Type), 참조형(Reference Type) 2가지 타입이 있다. 아래는 기본 자료형인데 표에 있는 8가지만 존재하기 때문에 그냥 외우면 된다.
자바에는 데이터를 저장할 때 메모리의 두 곳을 이야기하는데 하나는 스택(stack), 다른 하나는 힙(Heap)이 있다. 기본형은 참조 없이 바로 스택(stack)에 저장하고, 참조형은 참조 변수는 스택(stack)에 저장하고 실제 값은 힙(Heap)에 저장한다. 즉 기본형은 값을 바로 꺼내 쓰기 때문에 속도가 빠르고 참조형은 참조 주소를 통해 실제 값을 꺼내 쓰기 때문에 상대적으로 속도가 느리다.
그리고 기본형의숫자는 0, 0.0, character는 '\u0000'(null 문자), boolean은 false로 초기화되는 반면 참조형은 객체 자체를 참조하므로 변수를 선언하면 무조건 null값으로 초기화 된다. 따라서 참조형을 초기화 하지 않고 그냥 사용하면 'NullPointerException'이 많이 발생한다. 뭐 아무튼 여기까지 정리를 하고,,,
2. Boolean, boolean Getter 메서드 이름 규칙
private boolean isLogined;
public boolean isLogined() {
return isLogined;
}
기본형(Primitive Type)은 위와 같이 선언하고 getter/setter를 생성하면 getter 메소드에 앞에 get이 붙지 않고 그냥 isLogined가 된다.
private Boolean isLogined;
public Boolean getIsLogined() {
return isLogined;
}
참조형(Reference Type)은 get이 붙는다.
3. 왜 그럴까?
boolean은 기본 타입으로 참/거짓을 나타내기 때문에 앞에 is라는 표현이 자연스럽고 boolean 필드의 getter를 isFieldName 형식으로 정의하도록 권장하고 있다.
Boolean은 객체 타입이기 때문에 null을 가질 수 있어 일반 객체로 다뤄진다. 따라서 일반 필드와 동일하게 getFieldName 형식으로 getter 메서드가 생성된다.
* 참고로 Lombok도 동일한 규칙이 적용된다.
'Error > Java' 카테고리의 다른 글
cmd, console "has been compiled by a more recent version" 에러 (0) | 2024.02.04 |
---|