기본 타입과 참조 타입 (Primitive type & Reference type)
기본 타입 (Primitive Type) | 참조 타입 (Reference Type) |
데이터의 실제 값 | 데이터의 주소 값 |
정수형 (byte, short, int, long), 실수형 (float, double), 문자형 (char), 논리형 (Boolean) | 객체의 주소 값을 저장, 8개의 기본 타입을 제외한 나머지 |
public class main {
public static void main(String[] args)
{
Object object = new Object();
System.out.println(object);
}
}
-->> java.lang.Object@3ac3fd8b
-->> @3ac3fd8b 가 메모리에 저장된 객체의 주소값이다.
정수형 타입 (byte, short, int, long)
정수형에는 4가지의 타입이 있으며 저장 값의 범위가 서로 다르다. 예전에는 메모리의 용량이 크지 않아 필요에 따라 다른 타입을 사용했는데 현재 기준으로는 메모리의 용량이 넘치면 넘쳤지 부족한 경우는 대개 없기 때문에 일반적으로 int를 사용한다.
범위에 맞지 않는 값이 들어가 있으면 overflow (표현 가능 범위 초과)나 underflow(표현 가능 범위 미달) 등의 문제가 생긴다 (126.. 127.. 갑자기-129 가 되는 등 )
실수형 타입 (float, double)
실수 타입은 float(4byte) 와 double (8byte)가 있으며 실수형 값 뒤에는 float i = 3.14f, double longnum = 4.213455 d와 같이 값 뒤에 float는 f, doubld이면 d를 붙여야 한다. 하지만 double의 경우 실수형 타입의 디폴트로 정해져 있기 때문에 d를 붙이는 건 생략이 가능함.
실수형 타입에서 부동 소수점을 조심해야 한다. (c++ 공부한것 첨부) 즉 오차가 발생하게 되는데 실수를 정밀하게 표현할수록 오차가 줄어든다. 이 정밀도는 데이터 타입이 클수록 높아진다 (많이 표현할 수 있어서)
즉 정리하면 double형은 1. 더 큰 실수를 저장할 수 있고, 2. 더 정확하게 값을 표현할 수 있다.
논리형 타입 (boolean)
boolean (불리언) 타입은 true / false , 참과 거짓을 저장하는 타입이고 true = 1, false = 0으로 표현한다. 조건문에서 자주 쓰이게 된다. 논리회로를 생각해 보면 편하다.
문자 타입 (char)
char 타입은 단어에서 유추할 수 있듯이 character를 연상 시키며 단 하나의 문자만 저장 가능하다. 문자열의 경우에는 string을 사용해야 한다. char과 string 은 서로 다른 타입이라고 생각해야 한다.
char 타입은 Unicode 와 밀접한 관련이 있는데 char 변수에 문자 하나를 넣으면 문자 상태로 저장되는 게 아니라 그 문자에 해당하는 unicode값으로 변환돼서 저장된다. 2byte 크기를 갖는 char 타입에 하나의 유니코드를 저장한다.
'programming > JAVA' 카테고리의 다른 글
Java - Output / Input (0) | 2022.05.04 |
---|---|
Java - 연산자 우선순위 (Operator Precedence) 테이블 (0) | 2022.05.04 |
Java - 변수 / 상수 / 타입변환 (0) | 2022.05.04 |
Java - [문자열] StringTokenizer (0) | 2022.05.04 |
Java - [문자열] StringBuilder / StringBuffer (0) | 2022.05.04 |