본문 바로가기

프로그램/JAVA

자바기초 : primitive Type , reference type

자바의 자료형은 크게 2가지로 나눌 수 있습니다.

primitive Type : 기본 타입
reference Type : 참조 타입

** java가 객체지향 언어라고 하지만 100% 객체지향은 아니라고 하는 이유가 primitive Type이 있기 때문이라고 합니다.

기본 타입

boolean, byte, char, short, int, long, float, double 을 의미 합니다.

데이터 타입이 정해지고 값을 넣으면 해당 메모리에 값이 저장 됩니다.
각 타입별로 OS에서 정해지는 크기가 있습니다.

예로 32비트 컴퓨터에서 int는 32비트 즉, 4바이트 크기를 갖습니다.
** 8비트가 1바이트 입니다.

생기새도 보면 소문자로 되어 있습니다.
또한 값을 할당할때 new 키워드를 사용하지 않습니다.

참조 타입

기본타입 이외의 모든 자료형이라고 보시면 됩니다.
자바에서 얘기하는 class가 바로 참조 타입 입니다.

변수를 선언하고 값을 할당하면 메모리상에는 해당 변수에 참조형 데이터가 있는 곳의 메모리 주소가 들어가고 실제 값은 해당 주소가 가르키는 메모리영역에 들어갑니다.
** 어려운면 그려려니하고 넘어가세요.

보통 객체라고 얘기하면 모두 참조타입니다.
자바의 객체는 최상의 클래스인 Object를 상속 받습니다.
즉 모든 객체는 Object라고 보면 됩니다.

여기서 잠깐!!

그럼 자바의 참조 타입과 C에서 얘기하는 포인터는 같은 얘기 아닌가요?
네. 매우 비슷 합니다.
포인터는 메모리 주소값을 의미 합니다.
자바의 객체변수에는 실데이터가 있는 메모리 주소값이 들어간다고 했습니다.
C와 차이가 있다면 C에서는 포인터 변수가 가르키는 메모리 주소를 변경 할수 있으나 자바에서는 불가능 합니다.
** 이것도 이해가 안되면 그러려니..


Object A = new Object();

위 구문은 내부적을 3가지 일을 동시에 하는 것입니다.

Object A;
A라는 변수를 선언합니다.
참조형 변수 A를 만듭니다.

new Object();
객체를 생성 합니다.
메모리에 Object객체를 생성 합니다.

A = new Object();
객체를 생성 하고(1단계), 생성한 객체가 있는 메모리상의 주소값을 A라는 참조형 변수에 할당 합니다.(2단계)


Object A = new Object();
는 선언, 생성, 할당의 과정을 한줄로 표현하는 것이 됩니다.

'프로그램 > JAVA' 카테고리의 다른 글

자바기초 : 자료를 담는 List와 Map  (0) 2019.01.22
apache deamon 설정  (0) 2019.01.22