[JAVA]자료형
카테고리: JAVA
[4] 자료형
4.1. 컴퓨터의 데이터 처리 방식
- 2진수 전기 신호를 통해 처리
- 바이트(Byte) : 데이터 처리의 기본 단위
- 1 byte : 양수의 경우 0 ~ 255까지 표현 가능
4.2. 기본 자료형(Primitive Data Type)
정수형 | 문자형 | 실수형 | 논리형 | |
---|---|---|---|---|
1바이트 | byte | X | X | boolean |
2바이트 | short | char | X | X |
4바이트 | int | X | float | X |
8바이트 | long | X | double | X |
4.3. 정수 자료형
자료형 | 바이트 | 수의 범위 |
---|---|---|
byte | 1 | -2^7 ~ 2^7-1 (-128 ~ 127) |
short | 2 | -2^15 ~ 2^15-1 (-32,748 ~ 32,767) |
int | 4 | -2^31 ~ 2^31-1 (-2억 ~ 2억) |
long | 8 | -2^63 ~ 2^63-1 |
- byte
- 동영상, 음악 파일, 실행 파일 등의 자료 처리 시 사용
- short
- C/C++ 언어와 호환 시 사용
- int
- 자바에서 사용하는 정수의 기본 자료형
- 가장 많이 쓰이는 정수 자료형
- 프로그램의 모든 숫자 int로 저장
- 32비트를 초과할 경우, long 자료형으로 처리
- long
- 숫자 뒤에 L(대문자) 또는 l(소문자)을 붙여서 표현
4.4. 실수형(부동소수점 방식/고정소수점 방식)
자료형 | 크기 |
---|---|
float | 4byte |
double | 8byte |
- 정수에 비해 정밀하기 때문에 정수와 다른 방식으로 표현
- double
- 실수의 기본 자료형
- 지수부와 가수부로 구성.
- ex) 실수 값 0.1의 표현
-> 1.0 * 10^-1 -> 1.0 * 10 ^-1 ---- ---- ---- 가수 밑수 지수
- 컴퓨터에서는 밑수를 2로 사용하는 경우가 많다
- 정규화 : 가수가 밑수보다 작은 한 자리까지 가수로 표현 되는 것
- ex) 실수 0.2 정규화
-> 0.4 * 2^-1 -> 1.6 * 2^-3
- 가수의 첫 번째 자리 숫자는 항상 1이다
- ex) 실수 0.2 정규화
4.5. 문자형
자료형 | 크기 |
---|---|
char | 4byte |
- 정수로 표현
- 내부적으로는 비트의 조합으로 표현
- 문자를 표현하기 위해 특정 정수를 할당
- ex) 문자 ‘A’의 경우
'A' ==> 65 : 인코딩(Encoding) : 각 문자를 특정한 숫자(코드값)로 변환) 'A' <== 65 : 디코딩(Decoding) : 숫자를 원래의 문자 형태로 변환)
- ex) 문자 ‘A’의 경우
- 문자 세트(Charater Set)
- 각 문자에 할당된 숫자값(코드값)을 정의해 둔 세트
- ASCII code(아스키 코드) : 알파벳, 숫자 및 특수문자 등을 1바이트 안에서 표현하기 위해 사용하는 문자세트
- euc-kr
- 유니코드(Unicode)
- 한글과 같은 복잡한 언어를 표현하기 위한 전세계 표준 인코딩
- UTF-8 : 1바이트에서 4바이트까지 다양한 문자 표현 가능
- UTF-16 : 2바이트로 문자 표현
- JAVA도 UNICODE 사용
- ex) JAVA의 유니코드 A
char ch = 'A';
- ex) JAVA의 유니코드 A
- 내부적으로는 숫자로 인식되므로 숫자를 입력해도 문자가 출력될 수 있다
- 각 문자에 할당된 숫자값(코드값)을 정의해 둔 세트
4.6. 논리형
자료형 | 크기 |
---|---|
boolean | 1byte |
- true(참), false(거짓) 두가지만 나타냄
- 값이 존재하는지, 배열이 비었는지, 결과가 참인지 거짓인지 등을 표현
4.7. 지역 변수 타입 추론(Local-Variable Type Inference)
- 지역변수를 자료형 없이 사용
- 추론이 가능한 변수에 대해서는 자료형을 선언하지 않을 수 있다
- 한 번 선언 및 추론된 변수는 다른 타입의 값을 대입할 수 없다
- 지역변수에만 사용 가능
4.8. 참조형
- 클래스 자료형
- JDK에서 제공되는 클래스 또는 프로그래머가 정의한 클래스
-
클래스에 따라 사용 크기가 다르다
ex)String, Student, ....
- 사용 메모리 크기가 정해져 있는 기본 자료형과 달리 클래스에 따라 변화
댓글 남기기