프로그래밍 언어/JAVA
[JAVA] 데이터 타입
김곰댕
2021. 6. 7. 14:55
728x90
기본 타입
값의 종류 | 기본 타입 | 메모리 사용 크기 | 저장되는 값의 범위 | |
정수 | byte | 1 byte | 8 bit | 2^7 ~ 2^7-1 (-128~127) |
char | 2 byte | 16 bit | 0 ~ 2^16-1 (유니코드: \u0000~\uffff, 0~65535) | |
short | 2 byte | 16 bit | -2^15 ~ (2^15-1) (-32,768~32,767) | |
int | 4 byte | 32 bit | -2^31 ~ 2^31-1 (-2,147,483,648~2,147,483,647) | |
long | 8 byte | 64 bit | -2^63 ~ 2^63-1 | |
실수 | float | 4 byte | 32 bit | (+/-)1.4E-45 ~ (+/-)3.4028235E38 |
double | 8 byte | 64 bit | (+/-)4.9E-324 ~ (+/-)1.7976931348623157E308 | |
논리 | boolean | 1 byte | 8 bit | true, false |
최상위 부호 비트 : 0(양수), 1(음수)
ex)
byte -2^7 ~ 2^7-1
제일 앞의 1bit는 음수/양수를 구분해주는 bit이므로 나머지 조합으로 값의 범위 숫자가 결정
저장되는 값의 범위가 -128 ~ 128이 아닌 127인 이유는 0을 포함하기 때문 / 값의 범위를 초과하면 컴파일 에러가 일어남
S | 7bit |
예제)
package sec02.exam01_byte;
public class GarbageValueExample
{
public static void main(String[] args)
{
byte var1 = 125;
var1++; //var1 = var1 + 1; 과 같음
System.out.println(var1);
var1++;
System.out.println(var1);
var1++;
System.out.println(var1); //127을 넘으면 -128부터 다시시작
}
}
예제)
package sec02.exam01_byte;
public class GarbageValueExample
{
public static void main(String[] args)
{
byte var1 = 125;
int var2 = 125;
for(int i = 0; i<5; i++) //i는 0, 괄호안의 작업을 완료할때마다 i는 1증가 / i가 5미만일때까지 반복
{
var1++; //var1 = var1 + 1;
var2++; //var = var2 + 1;
System.out.println("var1 : " + var1 + "\t" + "var2 : " + var2); // var1과 var2의 결과값 출력
}
}
}
char 타입
2byte 부호없는 정수값 저장
char 타입에는 한 문자를 유니코드로 저장
유니코드? 세계 각국의 문자들을 2byte 표현되는 코드값으로 매핑한 국제 표준 규약
하나의 문자 리터럴은 작은 따옴표 ( ' ) 로 감싸야 한다.
char var1 = 'A'
직접 유니코드 정수 값을 저장할 수도 있다.
char c = 65;
char c = '\u0041';
유니코드를 알고 싶은 경우
char c = 'A';
int uniCode = c;
예제)
package sec02.exam02_char;
public class CharExample
{
public static void main(String[] args)
{
char c1 = 'A'; //문자저장
char c2 = 65; //10진수 저장
char c3 = '\u0041'; //16진수 저장
char c4 = '가'; //문자저장
char c5 = 44032; //10진수 저장
char c6 = '\uAC00'; //16진수 저장
int uniCode = c1; //유니코드 얻기
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
System.out.println(c6);
System.out.println(uniCode);
}
}
728x90