본문 바로가기
Java

[JAVA] 데이터 타입

by 겅아링 2020. 4. 5.
반응형

데이터타입 : 변수를 생성하려면 메모리에 일정 공간을 확보해야 하는데, 그 크기는 데이터 타입에서 결정

데이터 타입은 크게 두가지로 분류

기본 타입(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