IT 개발노트
기본 자료형과 객체 자료형의 이해 본문
1. 기본 자료형과 객체 자료형의 이해
1.1 기본 자료형(Primitive)
: Java언어에 이미 존재하고 있는 데이터 타입, 주로 간단한 데이터들이다. (예. int, double, boolean, char 등등..)
1.2 객체 자료형(Object)
: 여러가지 데이터들이 모여 있는 복잡한 데이터로 기본 자료형에 비해 크기가 크다. (예. String, System, ArrayList 등등..)
* 기본 자료형은 제일 앞이 소문자로시작! 객체 자료형은 제일 앞이 대문자로 시작!
1.3 차이점
: int i = 10; 이라는 값이 있을때, int는 기본 자료형이기 때문에 메모리에 할당된 i영역에 10이라는 값이 바로 들어간다.
String s = "ABC"; 이라는 값이 있을때, String은 객체 자료형이기 때문에 메모리에 "ABC"라는 값이 메모리 어딘가에 저장이 되고, 메모리에 할당된 s영역에는 "ABC"가 들어있는 주소값이 들어간다.
1.4 기본 자료형(Primitive) 종류
-기본 자료형 종류 예시
1 2 3 4 5 6 7 8 9 10 11 12 | public static void main(String[] args) { char c = '킹'; //문자 타입 int i = 10; //정수 타입 double d = 3.140; //소수 표시 boolean b = true; //참, 거짓 타입 System.out.println("c는 "+ c); System.out.println("i는 " + i); System.out.println("d는 " + d); System.out.println("b는 " + b); } |
1.5 묵시적 형변환
: 작은 주머니의 데이터를 큰 주머니로 옮기는 것.
* int : 4byte, double : 8byte인데 int 타입을 double 타입으로 바꾸는 것은 문제가 없지만, double 타입을 int 타입으로 바꾸게 되면, 데이터가 잘리는 현상이 발생할 수도 있다.
예시1
1 2 3 4 5 6 7 | public static void main(String[] args) { int i1 = 10; double d1 = i1; System.out.println("d1 데이터는 " + d1 + "입니다."); } | cs |
-작은 타입을 큰 타입으로 변환했기 때문에 문제없이 작동한다.
예시2
1 2 3 4 5 6 7 | public static void main(String[] args) { double d2 = 10.0D; // D는 double형이라는 것을 나타내기 위해 사용 int i2 = d2; System.out.println("i2 데이터는 " + i2 + "입니다."); } |
- 큰 타입을 작은 타입으로 변환했기 때문에 7번째 줄에서 에러가 발생하는 것을 확인할 수 있다.
1.6 명시적 형변환
: 큰 주머니의 데이터를 작은 주머니로 옮기는 것. 데이터 손실이 있을 수 있으며, 코드에 명시해 주어야 한다.
예제3
1 2 3 4 5 6 7 8 9 10 11 12 | public static void main(String[] args) { int i1 = 10; double d1 = i1; System.out.println("d1 데이터는 " + d1 + "입니다."); double d2 = 10.0D; //D는 double형이라는 것을 나타내기 위해 사용 int i2 = (int)d2; System.out.println("i2 데이터는 " + i2 + "입니다."); } |
- 큰 타입을 작은 타입으로 변환하기 위해 int i2 = (int)d2; 를 명시해 주면 실행이 된다. 하지만 출력문을 확인해보면, d2 값은 '10.0D'였는데 큰 타입이 작은 타입으로 변환되면서 '10'만 출력되고 '.0D'는 잘린것을 확인할 수 있다.