JAVA chapter 05. 참조 타입. 5.1. 데이터 타입 분류


5.1. 데이터 타입 분류


// 기본 타입은 byte, char, short, int, long, float, double, boolean을 이용해서 선언된 변수는 실제 값을 변수 안에 저장하지만,

// 참조 타입인 배열, 열거, 클래스, 인터페이스를 이용해서 선언된 변수는 메모리 번지를 값으로 갖는다.

 번지를 통해 객체를 참조한다는 뜻에서 참조 타입이라고 부른다.


// 변수가 스택 영역에 생성되고, 객체는 힙 영역에 생성된다



5.2 메모리 사용 영역


5.3 참조 변수의 ==, != 연산



5.4 null과 NullPointerException



// 참조 타입 변수를 잘못 사용하면 발생한다


5.5 String 타입



// == 연산자는 변수에 저장된 객체 번지가 동일한지를 검사한다

// equals() 메소드는 문자열만을 비교한다



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package sec05.exam01_string_equals;
public class StringEqualsExample {
    public static void main(String[] args) {    
        String strVar1 = "신민철";
        String strVar2 = "신민철";
        
        if(strVar1 == strVar2) {
            System.out.println("strVar1과 strVar2는 참조가 같음");
        } else {
            System.out.println("strVar1과 strVar2는 참조가 다름");
        }
        
        if(strVar1.equals(strVar2)) {
            System.out.println("strVar1과 strVar2는 문자열이  같음");
        }
        
        String strVar3 = new String("신민철");
        String strVar4 = new String("신민철");
        
        if(strVar3 == strVar4) {
            System.out.println("strVar3과 strVar4는 참조가 같음");
        } else {
            System.out.println("strVar3과 strVar4는 참조가 다름");
        }
        
        if(strVar3.equals(strVar4)) {
            System.out.println("strVar3과 strVar4는 문자열이  같음");
        }        
    } 
}
cs



// String 변수는 참조 타입이므로 초기값으로 null을 대입할 수 있다.

// null은 String 변수가 참조하는 String 객체가 없다는 뜻이다.

ex)

String hobby = null;


// 다음 코드는 hobby 변수가 String 객체를 참조하였으나, null을 대입함으로써 더 이상 String 객체를 참조하지 않도록 할 수 있다.

// 참조를 잃는 String 객체는 JVM가 쓰레기 객체로 취급하고 쓰레기 수집기를 구동시켜 메모리에서 자동 제거한다.

ex)

String hobby = "여행";

hobby = null;


Posted by 너래쟁이
: