Bonjour le monde

KH정보교육원/NCS테스트

Java 데이터타입

cupid 2021. 6. 17. 16:35

*데이터의 크기

  • bit:프로그래밍(컴퓨터)에서 가장 작은 단위 (0과1)
  • 비트를 제외한 나머지는 이전 단위에 1024를 곱하면 다음 단위이다
  • 보통 업계에서는 페타바이트까지 사용
8 bit (비트) 1 byte
1024 byte (바이트) 1 kilobyte
1024 kilobyte (킬로바이트) 1 megabyte
1024 megabyte (메가바이트) 1 gigabyte
1024 gigabyte  (기가바이트) 1 terabyte
1024 terabyte (테라바이트) 1 petabyte
1024 petabyte (페타바이트) 1 exabyte
1024 exabyte (엑사바이트) 1 zettabyte

 

 

*정수형 데이터타입(숫자는 정수(int)와 실수(double,float)로 구분)

데이터 타입 메모리의 크기 표현 가능 범위
byte 1 byte -128 ~ 127
short 2 byte -32,768 ~ 32,767
int 4 byte -2,147,483,648~2,147,483,647
long 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
  • 각각의 데이터타입은 표현가능한 범위를 준수해야한다 (예시; byte로 128이상은 표현할수 없다 (에러가 생김))
  • 각각의 데이터타입은 다른 메모리 크기를 가진다. 따라서 메모리 크기와  표현가능 범위를 파악해서 효율적으로 사용해야한다.

 

  1. byte a;

이 변수에 담을 수 있는 숫자의 범위는 -128~127까지다. 이 범위 밖의 수인 -129나 128을 변수에 대입하려고 하면 오류가 발생할 것이다. 그럼 매우 큰 표현범위를 가지고 있는 long형을 사용하지 왜 byte 형을 사용할까? 만약 표현하고자 하는 수가 많아봐야 100을 넘지 않는 경우가 있다고 생각해보자.

 

예시1 )대한민국의 행정구역을 숫자로 표시한다고 가정했을때, 현재 대한민국의 행정구역은 127개를 넘지 않는다.

      따라서 byte로 표현해도 에러가 발생하지 않는다.  

1 경기도
2 전라도
3 충청도
4 경상도
5 제주도
6 강원도

코드예시) byte district =1; //경기도  

 

**만약 long과 같이 byte가 아닌 다른 데이터 타입을 사용한다면, 메모리 크기를 낭비해서 사용하게 될 것이다. 

 

 

예시2 ) 대한민국의 인구 수를 변수에 담으려고 할 때 byte형을 사용한다면?

          byte의 최대 한계 127을 초과해서 오류가 발생할 것 이다.

byte population=5000000;  

 

**따라서 int를 사용하는것이 합리적이다. 

 

 

2.메모리 크기

변수에 담은 숫자와 메모리 크기는 같지 않다

예시1) long a=1 long b=14238173 일때, 변수a와 변수b는 둘 다 똑같이 8byte의 메모리를 사용하게된다. 데이터 타입이 둘 다 long으로 같기 때문이다. 

 

 

*실수형 데이터 타입(flaot, double)

float 4byte ±(1.40129846432481707e-45 ~ 3.40282346638528860e+38)
double 8byte ±(4.94065645841246544e-324d ~ 1.79769313486231570e+308d)

실수형은 float과 double이 있다. 실수를 사용할 때는 double을 사용한다. (float를 사용해야되는 이유가 분명하지 않은 경우)

 

 

*문자형 데이터 타입(char)

char 2byte 모든 유니코드 문자

자바에서는 문자와 문자열이 다르다. 문자(character)는 글자 하나를 의미하고, 문자열은 글자들의 집합을 의미한다. 문자는 2byte의 메모리를 사용한다. 따라서 6글자를 담고있는 string 변수는 6*2byte=12byte를 사용한다. 

 

'KH정보교육원 > NCS테스트' 카테고리의 다른 글

Java 주석과 세미콜론  (0) 2021.05.22
Java 변수  (0) 2021.05.22
Java 숫자와 문자  (0) 2021.05.22
Eclipse 이클립스 설치와 기능  (0) 2021.05.20
Java실행  (0) 2021.05.20