[JAVA] 자료형
자료형과 형 변환에 관한 스터디 메모
[JAVA] 자료형
자바에는 기본형(primitive type)과 참조형(ReferenceType)이 존재한다.
기본형
기본형은 값을 저장하는 자료형이다. 기본형은 null 값을 가질 수 없다.
| Type | Bits |
|---|---|
| boolean | 1 |
| byte | 8 (1 Byte) |
| char | 16 (2 Bytes) |
| short | 16 (2 Bytes) |
| int | 32 (4 Bytes) |
| long | 64 (8 Bytes) |
| float | 32 (4 Bytes) |
| double | 64 (8 Bytes) |
※ boolean은 true, false만 존재한다. ※ char는 음수 값을 가질 수 없다.
기본형의 형 변환
- 자동 형 변환
자동 형 변환의 조건: 표현범위가 좁은 자료형 -> 표현범위가 큰 자료형 만 가능하다.
ex) byte는 short가 될 수 있지만, int는 short로 자동 형 변환이 불가능하다.
1
float f = 100.0; //ERROR!!!! 실수 상수는 기본적으로 double이다.
```java //연산은 피연산자의 타입이 같아야만 수행된다. –> 자동 형 변환 short s = 10; int i = 20;
//short sum = s + i; ERROR!!! int sum = s + i; //정수 연산일 경우 int 타입으로 자동 형 변환된다.
int num1 = 10; double num2 = 11.52; double result = num1 + num2; // num1이 double형으로 자동 형 변환되어 계산된다.
1
2
3
4
5
6
2. 명시적 형 변환
자동 형 변환이 적용되지 않는 경우에는 수동으로 형 변환을 한다.
```java
float a = (float)100.0;
int num = (int)100.1234; // 100만 저장됨
※ 명시적 형 변환은 데이터의 손실이 발생할 수 있다.
참조형
참조형은 주소를 저장하는 자료형이다. 실제 값은 힙(heap)영역에 저장되고, 그 데이터의 주소가 스택(stack) 영역에 존재하는 참조형 변수에 저장된다. ※ 실제 메모리 주소는 아님에 주의하자. Java에서 참조 변수는 객체의 실제 메모리 주소를 직접적으로 저장하지 않는다. 대신, 참조 변수는 객체가 힙 메모리에 할당된 위치를 가리키는 값(참조)를 가지고 있다.
| Type | Bits |
|---|---|
| 배열 (array) | 32 (4 Byte) |
| 열거 (enumeration) | 32 (4 Byte) |
| 클래스 (class) | 32 (4 Bytes) |
| 인터페이스 (interface) | 32 (4 Bytes) |
※ 할당되는 메모리 크기는 4 Byte로 동일하다. why? 객체의 주소값을 저장하기 때문이다.
참조형 각각의 자세한 설명은 이후에 포스팅 할 예정이다.
This post is licensed under
CC BY 4.0
by the author.