데이터타입 : 변수를 생성하려면 메모리에 일정 공간을 확보해야 하는데, 그 크기는 데이터 타입에서 결정
데이터 타입은 크게 두가지로 분류
기본 타입(primitive type) - 정수형, 실수형 ,논리형
참조 타입(reference type) - 배열,열거,클래스,인터페이스
: 객체(Object)의 번지를 참조하는 타입
(8bit = 1byte)
정수형
1byte : byte
2byte : char(문자형) , short
문자형 char : 한 글자를 정수로 저장
ex) char name = 'A'; (' ' 사용, " " 사용불가)
A는 ASCII 코드로 65에 해당함으로 저장되는 값은 65이다.
char타입으로 저장되었기 때문에 출력시에는 'A' 로 표현!
(영어는 ASCII코드 , 이외의 문자(한글,로마자 ...)는 유니코드
char a1 = 65;
char a2 = 'A';
char a3 = '\u0041' 유니코드 표시법
실행결과 모두 A 로 같음!!
\n,\t 등의 특수문자는 한글자로 표현
4byte : int (기본형)
8byte : long
( long타입 선언시 : long b=50L; )
* 기본타입의 메모리만큼 잡기때문에 long이라는 표시를 하지않으면 값을 잃을수있다.
실수형
4byte : float
( float타입 선언시 : float c=13.523F; )
8byte : double (기본형)
논리형
1byte : boolean
true, false 두가지만 존재
객체참조변수형
4byte
메모리의 위치(주소)를 가르키는 변수
변수는 Stack영역에 생성
객체는 Heap영역에 생성
Stack영역에 생성된 변수가 Heap영역에 생성된 객체의 주소(번지)를 가르킴
* 왜 4byte?
프로그램을 제작할때 가상메모리가 4GB 주어지는데
메모리의 주소는 1byte씩 구분된다
가상메모리 4GB의 주소(0~ (2^32)-1) 를 4byte면 마지막 주소까지 가르킬수있다.
표준타입 이하의 데이터타입을 사용하면 메모리는 절약되지만 속도가 저하된다.
변수를 저장할때는 타입에 맞는 메모리로 저장하지만
연산을 할경우 기본타입으로 변환된다.(레지스터의 크기가 기본 4byte기때문)
* 참고자료
https://copynull.tistory.com/112?category=194491
32비트에서는 char, short 대신 int 형을 써야 연산속도가 줄어든다
written by 김시찬(chanywa), 2010-02-24 E-mail : chany@chanywa.com Homepage : http://chanywa.com 변수에 쓸 데이터형, 한번쯤은 고려해보자 C 프로그래머의 입장에서 이야기를 시작하는 것이긴 하지만,..
copynull.tistory.com
속도개선법
: 레지스터의 크기에 맞는 데이터 타입을 사용한다.
'Java' 카테고리의 다른 글
[JAVA] 변수와 메모리 (0) | 2020.04.07 |
---|---|
[JAVA] 메모리 & 실행 구조 (0) | 2020.04.06 |
[JAVA] 연산자 (0) | 2020.04.04 |
[JAVA] 변수 (0) | 2020.04.03 |
[Java] 자바란? (0) | 2020.04.02 |