티스토리 뷰
프리미티브 타입 종류와 값의 범위 그리고 기본 값
java에는 8가지의 자료형이 존재하며 Object가 아닌 raw value이다.
8가지 타입은 모두 스택 메모리에 저장된다.

프리미티브 타입과 레퍼런스 타입
다음과 같이 primitive type과 reference type이 나뉜다.
- byte: Byte
- short: Short
- int: Integer
- long: Long
- float: Float
- double: Double
- char: Character
- boolean: Boolean
primitive type은 값이 stack영역에 그대로 저장되고 reference는 heap영역에 있는 객체의 주소를 저장하게 된다.
그렇기 때문에 참조형은 기본자료형에 비해 오버헤드가 발생할 수 있다.
변수 선언 및 초기화하는 방법
변수를 선언한다는 것은, 저장공간을 확보하겠다는 의미로 해석할 수 있다.
int a;
위의 코드가 변수를 선언한 것인데, 해석하자면 다음과 같다.
int 타입의 값을 저장할 수 있는 공간을 확보했고(int 타입은 4byte) 그 공간을 지칭할 이름은 a이다.
변수를 초기화한다는 것은, 저장공간에 원하는 값을 저장하는 것을 의미한다.
변수를 선언하고 나면, 해당 공간에는 아무런 의미 없는 쓰레기값이 들어가 있게 된다. 그리고 그 상태에서 컴파일을 시도하면
Error:(10, 28) java: variable a might not have been initialized와 같은 컴파일 에러코드를 볼 수 있을 것이다.
그러므로 변수는 선언 후에 초기화를 해야 하며 위에 선언한 변수에 대한 초기화는 다음과 같이 할 수 있다
a = 10;
변수의 선언과 초기화를 한 줄에 하는 것도 가능하다.
int a = 10;
변수의 스코프와 라이프타임

타입 추론, var
타입 추론이란 데이터 타입을 소스코드에 명시하지 않아도, 컴파일 단계에서 컴파일러가 타입을 유추해 정해주는 것을 뜻한다. 1.5 버전부터 추가된 Generic이나 자바 8 버전에서 추가된 lambda에서 타입추론이 사용된다. 그리고 자바 10에서는 이러한 타입추론을 사용하는 var이라는 Local Variable Type-Inference 가 추가되었다.
var a = "hello"; // String a = "hello";
var b = 10; // int b = 10;'개발 > Java' 카테고리의 다른 글
| [Java] 패키지 (0) | 2023.06.14 |
|---|---|
| [Java] 상속 (0) | 2023.06.08 |
| [Java] 클래스 (0) | 2023.06.07 |
| [Java] 제어문 (0) | 2023.06.05 |
| [Java] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. (0) | 2023.06.01 |