자바의 자료형에 대해서는 이전에 썼던 글과 같이 수치형(정수형, 실수형), 문자형, 논리형이 있다.
정수형 자료형
유형 | 크기 | 최소값 | 최대값 | 비고 |
byte | 1 Byte (8 bit) | -128 | 127 | |
short | 2 Byte (16 bit) | -32768 | 32767 | |
int | 4 Byte (32 bit) | -2147483648 | 2147483647 | |
long | 8 Byte (64 bit) | -9223372036854775808 | 9223372036854775807 | 값 뒤에 L 붙여야함. (long var=128L) |
실수형 자료형
유형 | 크기 | 최소값 | 최대값 | 비고 |
float | 4 Byte (32 bit) | 약 ±3.4x(10^-38) (유효숫자 7개) |
약 ±3.4x(10^+38) (유효숫자 7개) |
값 뒤에 F 붙여야함. (float var=0.43F) |
double | 8 Byte (64 bit) | 약 ±3.4x(10^-308) (유효숫자 15개) |
약 ±3.4x(10^+308) (유효숫자 15개) |
문자형
유형 | 크기 | 최소값 | 최대값 | 비고 |
char | 2 Byte (16 bit) | 0 | 65535 | 작은 따옴표('') 사용. 단일문자 저장. char var='A';//정수값 65. |
*char는 단일문자('A')일 때 사용하며, String은 문자열("HELLO!")일 때 사용한다. char는 기본형(실제 값 저장), String은 참조형(실제 객체를 가리키는 주소 저장)이다.
논리형
유형 | 크기 | 비고 |
boolean | 1 Byte (8 bit) | true(참)와 false(거짓) 값만 가진다. boolean var=true; |
자료형의 역할
자료형은 저장되는 값의 형태 및 메모리 사이즈를 결정한다. 자료형 마다 할당되는 메모리크기가 다르며, 해당 메모리에 따라서 변수에 저장할 수 있는 값의 허용범위가 달라진다.
ex) byte a=128; // 메모리 크기에 오버되므로 컴파일 에러;
형 변환(cast)
상황에 따라 자료형의 타입이 변환되기도 하며, 형 변환(cast)이라고 한다. 형 변환은 암시적인 형 변환(자동 형 변환)과 명시적인 형 변환으로 나눌 수 있다.
암시적인 형 변환(자동 형 변환)
자바는 필요할 때 마다 자동적으로 형 변환을 한다. 수식에서 서로 다른 자료형이 등장하면 자바 컴파일러는 그 중에서 가장 큰 타입으로 자동적으로 변환한다.
ex) byte y=124;// byte 타입 y변수에 1243 값 저장.
int x=23463;// int 타입 x변수에 23463 값 저장.
x=y;// int x에 byte y 값 대입 >> x가 y보다 자료형이 크기 때문에 가능. 반대인 y=x;는 컴파일 에러이다.
명시적인 형 변환
명시적인 형 변환은 변환되는 값의 왼쪽에 원하는 타입을 소괄호로 둘러싸서 적어주면 된다.
여기서 확대 변환과 축소변환으로 나눌 수 있다.
(확대변환)
더 큰 크기의 자료형에 값을 대입하는 변환으로, 일반적으로 안전한 변환이다.
ex.) int y=40;// int 타입 y변수에 40 값 저장.
double x=35.32;// double 타입 x변수에 35.32 값 저장.
x=(double)y;// int형인 y값을 double로 형 변환하여 x에 대입. x에는 40.00값이 대입된다.
(축소변환)
더 작은 크기의 자료형에 값을 대입하는 변환으로, 정밀한 숫자나 큰 숫자를 나타내는 정보를 잃을 가능성이 있다.
ex.)byte y=124;// byte 타입 y변수에 1243 값 저장.
int x=23463;// int 타입 x변수에 23463 값 저장.
y=(byte)x;//int타입 x를 보다 크기가 작은 byte로 형 변환했기 때문에 오버플로우가 발생해 값 손실이 일어난다.
'언어공부 > Java' 카테고리의 다른 글
자바 입력 Scanner 클래스 + import 문장 (0) | 2021.04.26 |
---|---|
자바 print 출력 메소드 - print()/ println() / printf() (0) | 2021.04.26 |
자바 상수(constant), 변수(variable) 와 식별자 규칙 (0) | 2021.04.25 |
자바 주석문(comment), 클래스(class), 메소드(method),자바의 문장(statement), 세미콜론(;) (0) | 2021.04.24 |
자바의 컴파일 과정 및 개발 환경 설정 (JDK 1.8 버전 / 이클립스 설치) (0) | 2021.04.24 |