문서의 이전 판입니다!
자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다.
false
\u0000
0
0
0.0F
0.0
float
의 정밀도는 7자리로 10진수로 7자리의 수를 오차없이 저장할 수 있다는 의미다. 그렇기에 사용할 변수의 값의 범위가 7자리를 넘는다면 정밀도를 고려해 double
타입을 사용해야 한다.
자료형은 크게 '기본형(Primitive Type)' 과 참조형(Reference Type)으로 나눌 수 있다.
Java.lang.Object
를 상속받을경우 참조형이 된다. 즉, 기본형을 제외하고는 참조형이라 생각해도 된다.
좀 더 얘기하자면 기본형은 메모리영역의 스택영역에 실제 값들이 저장된다면, 참조형은 실제 인스턴스는 힙영역에 생성되있고, 그 영역의 주소를 스택영역에서 저장하고 있다고 보면 된다.
💡 그 자체로 값을 의미하는 것
그림
에서 2020
이 리터럴이다.상수
의 다른 이름이라고 볼 수 있다.🤔 인스턴스는 리터럴이 될 수 있을까?
불변성(Imutable)
이 보장된다면 객체 리터럴이 될 수 있다.(불변 클래스(imutable class)
) 객체 리터럴
이 될 수 없다.Java.lang.String
이나 java.awt.Color
같은 클래스는 내용이 변해야 하는 상황이면 새로운 객체를 만들어 내용의 불변성이 보장되기에 객체 리터럴
이라 부른다.
변수를 사용하기위해서는 우선 변수를 선언해야 하며 아래 그림과 같이 선언합니다.
이렇게 변수를 선언하면, 메모리의 빈 공간에 '변수타입'에 알맞은 크기의 저장공간이 확보되고, 변수 이름을 붙혀서 이 이름을 통해 해당 저장공간을 사용할 수 있게 된다.
💡 변수를 사용하기 전 처음으로 값을 저장하는 것
변수를 선언하면 메모리에 변수의 저장공간이 확보되어있지만, 여러 프로그램에 의해 공유되기 때문에 이 공간안에 어떠한 값이 저장되어있을지는 알 수 없다.
그렇기에 초기화(initialization)
를 해줘야 한다.
=
을 사용한다. 위 그림을 보면 year
라는 int
변수타입과 year
라는 변수 이름을 가진 변수에게 2020
이라는 값을 대입한다.
지역변수는 변수의 초기화로 충분하지만, 멤버변수의 초기화는 몇가지 방법이 더 있다.
: 변수 선언과 동시에 초기화 하는 것을 명시적 초기화라 하는데, 위에서 소개한 변수의 초기화와 동일하며, 클래스 및 지역변수 어디서든 사용가능하며 여러 초기화 방법중 최우선적으로 고려한다.
: 초기화 블럭은 클래스 초기화 블럭과 인스턴스 초기화 블럭으로 나뉜다.
class ExplicitInitialization {
static { /*클래스 초기화 블럭 */ } { /*인스턴스 초기화 블럭*/ }
}
3. 생성자(constructor) :생성자는 말 그대로 인스턴스 생성시에 생성자 함수 안에서 명시적 초기화가 이뤄진다.