이 글 쓰는이유 =
팀원 다 있는 회식자리에서 나한테 'int와 Integer 차이 아세요?'라는 질문이 들어왔는데 대답못해서ㅎ 자존심 와장창
참조자료
http://wiki.hash.kr/index.php/%EC%9E%90%EB%A3%8C%ED%98%95
int는 기본자료형이고 integer은 래퍼(wrapper)클래스 이다.
마찬가지로 char은 기본자료형, Character은 Wrapper클래스로 차이가 있다.
그렇다면 래퍼클래스란 무엇일까?
기본자료형을 감싼 형태로, 기본자료형의 데이터를 인스턴스(객체)로 만들기 위해 사용하는 클래스이다.
Literal 방식 기본자료형은 비객체이기 때문에 'null'값을 넣을 수 없지만, 기본형에 'null'값을 넣고 싶다면 Wrapper 클래스를 이용하면 된다.
근데 저 표에 가장익숙한 자료형인 String이 안보인다.
String은 기본자료형이 아닌 참조자료형(reference dataType)이다.
참조자료형(reference dataType)은 주소를 가지고 있는 변수 즉, 선언된 변수에 값이 아닌 인스턴스에 대한 주소값이 저장
기본형처럼 마구잡이로 사용하지만 기본형처럼 사용한다고 해서 기본형은 아니다. 참조자료형이 맞다.
String 객체간의 비교는 .equals() 메소드를 사용해야한다.
-> 내가 종종 빈값 체크할때 if(String a = "") 하니까 에러 났던 이유...
"".equals(String)이 맞는표현!
사실 이정도로 자료형을 공부했다고는 볼 수 없지만,
그동안 제대로 알지 못하고 넘어갔던 가려운 부분들을 긁어주는 정도로 마무리한다.