Java Data Type
데이터 타입은 메모리의 크기(Size)와 메모리의 형태(Type)를 지정하기 위한 도구.
메모리 형태란 bit의 조합
1.기본형(base type) - 공간사이즈가 정해져 있어서 스택영역에 확보할수 있다.
:주로 메모리의 Stack(스택)영역에 공간을 생성
:데이터 타입을 가진 변수가 선언되고 초기값이 지정되면 스택영역에 공간을 확보
:해당 클래스나 메서드가 소멸되면 메모리 공간도 같이 소멸
2.레퍼런형(reference type)
:항상 Heap영역에 공간을 생성
:new라는 지시어를 이용해 Heap영역에 공간을 확보
:생성은 사용자가 생성하지만 소멸은 gabage collerctor가 필요없다 판단되면 소멸시킴
메모리의 두종류
스택
선언한구문이 사라지면 스택의 메모리영역도 같이 사라진다.
힙
데이터 크기를 정할수 없을때 쓴다. 힙은 선언한 구문이 사라져도 메모리 영역에서 소멸되지 않는다.
Java나 .net은 힙을 OS가 관리하게 한다.
Gabage collector- 힙을 소멸시킬 수 없기 때문에 힙을 소멸시키기 위해서 사용되는게 garbage collector이다.
Data Type의 종류
기본형
1-1 수치형
:정수형 소수점의 앞단만 존재, 실수형보다 메모리를 적게 차지함
- byte(1), char(2), short(2), int(4), long(8) *char(2)의 경우 숫자가 아닌 문자하나를 정하는 고정 값이다.
:실수형 가소수점의 앞단과 뒷단이 동시에 존재
- float,double
1-2 논리형
- boolean(bit)
16진수 - 0~15 (10부터 A 15는f)
10진수 - 0~9
8진수 - 0~7
2진수 - 0~1
bit - 2진수의 한자리(0 OR 1)
byte - bit가 8개가 모이면 byte 1byte=8bit 0~255(표현의 범위?)
레퍼런스영역 (힙영역은 데이터 사이즈가 정해져 있지 않다.)
2-1 Clas type
2-2 Interface type
2-3 Array type
Constant(상수) - 변수의 반댓말
- 10진수 : 4, 10, 80
- 8진수 : 04, 010, 080
- 16진수 : 0x4, 0xA(10), 0x50(80)
- LONG : 10L, 4L, 010L
- 소수형 : 1234.5, 0.0123
- 지수형 : 1.2345e3>> 1234.5
- float형: 1234.5f
Compile : Jdatatype.java >> javac compile >> J_Datatype.class >> Java Run
Package : 클래스의 집합 (패키지명과 클래스명은 같으면 안된다. 자바는 대소문자를 구분한다.)