2014. 12. 19. 17:34ㆍ프로그래밍/JAVA
- 목차
■ 기본형 데이터타입의 저장 가능 범위
종류 |
데이터형 |
크기(byte / bit) |
표현 범위 |
논리형 |
boolean |
1 / 8 |
true 또는 false |
문자형 |
char |
2 / 16 |
'\u0000' ~ 'uFFFF' (16비트 유니코드 문자 데이터) |
정수형 |
byte |
1 / 8 |
-128 ~ 127 |
short |
2 / 16 |
-32768 ~ 32767 | |
int |
4 / 32 |
-2147483648 ~ 2147483647 | |
long |
8 / 64 |
-9223372036854775808 ~ 9223372036854775807 | |
실수형 |
float |
4 / 32 |
1.4E-45 ~ 3.4028235E38 |
double |
8 / 64 |
4.9E-324 ~ 1.7976931348623157E308 |
◇ boolean
- 저장 가능한 범위 true/ false
- Java 가 데이터를 다루는 최소 범위가 1 Byte 이기 때문에 낭비적이긴 하지만 1 Byte 사용
◇ char
- Java의경우 Unicode 를 사용 동양의 글자의 경우 2 Byte 필요하기때문에 char 의경우 2 Byte 이용
- Java 에서 유일하게 제공되는 unsinged 형태 (음수 가존재 하지 않음 )
* 2 Byte = 16진수 0x00 = 0000 0000 0000 0000
맨앞 1 Bit를 가지고 음수나 양수 를 나타냄 하지만 char 형은 unsinged 형식이기 때문에
맨 앞 비트를 음수 양수 형식 으로 사용하지 않음
char 형이 1111 1111 1111 1111 의 Bit를 가지고 있을때 10진수의 값 65535
short 형이 1111 1111 1111 1111 의 Bit를 가지고 있을때 10진수의 값 -1
- char a = 'A'; b = 'B'; 일때 if (a > b) 가 가능한이유
* char 형은 유니코드 정수형태로 저장 char a = 'A' 일시 a변수에는 'A' 의 정수 값인 65가 들어감
※ JVM 의 피연산자 스택이 피연산자를 4 Byte 단위로 저장 하기 때문에
int 보다 작은 자료형의 값을 계산시 int 형으로 형변환 되서 연산이 수행됨
※ 정수형 데이터를 사용하게 되면 JVM에서 기본적으로 int형 데이터타입의 데이터로 인식을 해주게 된다.
- 표현할 수 있는 범위를 나타낸 것이다. 바이트 크기보다 1씩 작은 이유는 숫자를 표현하는 데이터타입에서는
맨앞의 비트를 부호를 나타내는 비트로 사용하기에 바이트 크기에서 1작은 승수로 범위를 표현된다.
범위에서 -1를 한 이유는 중간에 0이 있기 때문이다.
- int형 데이터타입의 범위를 넘어서는 long 데이터타입의 정수를 사용하고자 하는 경우에는 정수 데이터 맨뒤쪽에
접미사 'l' 이나 'L'을 붙여줘야한다. 소문자 l 은 숫자 1과 혼돈할 우려가 있기 때문에 대문자 L을 붙여 사용하도록 하자.
◇ byte
◇ short
◇ int
◇ long
※ 실수형 데이터타입에서는 double형 데이터타입이 기본 데이터타입 이다.
- 기본형 데이터타입이 double형 이기 때문에 float형 데이터타입의 실수형 데이터를 사용하고자 하는 경우에도
long형과 마찬가지로 실수데이터 맨뒤쪽에 접미사 'f'나 'F'를 붙여 줘야한다.
- float형 데이터타입보다 double형 데이터타입이 두배정도 더 정밀한 데이터를 표현할 수 있다.
◇ float
- float fl = 3.14F; or float fl = 3.14f;
- f를 붙여 주지 않으면 double형 데이터로 인식하기에 꼭 붙여 줘야한다.
◇ double
- temp = 1e-3;
- * e 뒤에 붙은 숫자가 10의 몇승을 나타냄
지금 1e-3의 경우 10의 -3승 으로서 0.001 과 같음
1e3 == 1000 (10의 3승 )과 같음
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] 6. 형변환(Casting) (0) | 2014.12.24 |
---|---|
[JAVA] 5. 데이터타입이란? (0) | 2014.12.23 |
[JAVA] 4. 정수의 오버플로우 (0) | 2014.12.23 |
[JAVA] 2. 변수의 선언 (0) | 2014.12.18 |
[JAVA] 1. 변수란 무엇인가? (0) | 2014.12.16 |