IT 개발노트

기본 자료형과 객체 자료형의 이해 본문

기초튼튼/JAVA

기본 자료형과 객체 자료형의 이해

limsungju 2019. 1. 15. 22:26

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'는 잘린것을 확인할 수 있다.


'기초튼튼 > JAVA' 카테고리의 다른 글

제어문과 루프란?  (0) 2019.01.16
연산자란?  (0) 2019.01.15
변수란?  (0) 2019.01.15
JAVA 프로그래밍 환경설정과 실행방법  (0) 2019.01.15
자바의 특징  (3) 2019.01.14