값의 타입
우리가 자주 사용하는 값(Data)의 종류(Type)에는 어떤것들이 있을까?
먼저 문자와 숫자가 있다.
문자는 '가,나,다,A,B,C' 같은 것들을 말한다.
숫자는 정수와 실수로 나눌 수 있다.
정수는 '0.25, -100'과 같은 것들이 있다.
실수는 '3.14, -0.1'과 같이 소수점이 있는 것이다.
Java는 이러한 값의 종류에 따라 변수의 타입을 정리하였다.
문자를 저장하기위한 변수의 타입은 Char 이다.
정수를 저장하기위한 변수의 타입은 byte, short, int, long 이 있다.
정수는 가장 많이 쓰이는 값이기 때문에 이렇게 4개의 타입으로 세분화하였고 저장하고자 하는 값의 크기와 용도에 따라서 이 4개의 타입중 선택하면 된다. 주로 int 타입이 많이 쓰인다.
실수를 저장하기위한 변수의 타입은 float,double 이 있다.
이 외 논리값을 저장하기위해 사용되는 boolean이 있다.
boolean 타입 변수에는 참과 거짓을 의미하는 true와 false를 저장할 수 있다.
Java에서는 이와같이 값의 종류에 따라 모두 8개의 타입을 정의하였다.
이 8개의 타입을 기본형이라고한다. 즉, 값(Data)의 가장 기본이되는 타입이라는 것이다.
변수를 선언할때는 이중에서 변수에 저장할 값에 가장 적합한 것을 골라서 변수의 타입으로 지정하면된다.
변수의 타입은 크게 기본형과 참조형 두가지로 나뉜다.
기본형(Primitive type)은 오직 8개(boolean, char, byte, short, int, long, float, double)의 타입을 말한다.
참조형(Reference type)은 기본형을 제외한 나머지를 말한다.(String, System 등)
Java를 설계한 사람들이 기본형의 개수는 8개로 고정해 놓았지만 참조형은 우리가 마음대로 얼마든지 추가할 수 있기 때문에 그 수가 정해져있지 않다.
기본형 변수는 실제 값을 저장하지만 참조형 변수는 메모리 주소를 저장(4byte 또는 8byte)한다는 차이가 있다.
메모리 주소는 0부터 1씩 증가하는 부호없는 정수 즉, 양수이고 기본형 변수는 타입마다 크기가 다르지만 참조형의 경우 타입의 관계없이 변수의 크기가 항상 4byte이다. 4byte로 표현할 수 있는 최댓값은 대략 40억정도 되기 때문에 4byte의 참조변수로는 약 40억 byte 즉, 4Gigabyte의 메모리를 다룰 수 있다.
OS와 Java Virtual Machine에서 사용하는 부분을 제외하면 실제로 프로그램에서 사용할 수 있는 메모리는 4gigabyte의 절반인 2gygabyte도 되지 않는다. 이처럼 32bit(4byte) JVM에서 참조변수의 크기는 4byte 즉, 32bit지만 64bit JVM인 경우에는 참조변수의 크기가 8byte 즉, 64bit이다. 그래서 64bit JVM에서 다룰 수 있는 최대 메모리는 40억 곱하기 40억 즉, 160경 byte이고 약 1,600만 Terabyte이다. 이는 어디까지나 이론적인 계산에 의한 값이다. 실제로 사용할 수 있는 메모리는 Terabyte 단위정도이다.
Date today; // 이 문장은 참조형 변수 today를 선언한 것이다. 이 변수의 타입은 Date이고 기본형 8개 중 해당하지 않으므로 참조형이라는 것을 알 수 있다.
today = new Data(); // 이 문장은 객체를 생성하고 생성된 객체의 주소를 참조형 변수 today에 저장한다.
만일 생성된 객체의 주소가 100번지라면 today에는 100이 저장된다. 이제 참조형 변수 today를 통해서 생성된 객체를 사용할 수 있다.
출처 :
'Language > Java' 카테고리의 다른 글
[Java] printf를 이용한 출력 (0) | 2023.01.24 |
---|---|
[Java] 변수 기본형의 종류와 범위 (0) | 2023.01.19 |
[Java] 두 변수의 값 바꾸기 (0) | 2023.01.11 |
[Java] 변수(Variable)-2 (0) | 2023.01.10 |
[Java] 변수(Variable) (1) (0) | 2023.01.03 |
댓글