class Tv { 
	// Tv의 속성(멤버변수)
	String color;           // 색상 
	boolean power;         	// 전원상태(on/off) 
	int channel;           	// 채널 
	// Tv의 기능(메서드) 
	void power()   { power = !power; }  // TV를 켜거나 끄는 기능을 하는 메서드  
	void channelUp()   { channel++; }  	// TV의 채널을 높이는 기능을 하는 메서드
	void channelDown() { channel--; }   // TV의 채널을 낮추는 기능을 하는 메서드
}
Tv t = new Tv();)t.channel = 7;)클래스명 변수명;			// 클래스의 객체를 참조하기 위한 참조변수 선언
변수명 = new 클래스명();	// 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Tv t;					// Tv클래스 타입의 참조변수 t를 선언
t = new Tv();			// Tv인스턴스를 생성 후, 생성된 Tv인스턴스의 주소를 t에 저장
Tv t = new Tv();		// 같음
t.channel = 7;			// Tv인스턴스의 멤버변수 channel의 값을 7로 한다.
t.channelDown();		// Tv인스턴스의 메서드 channelDown()을 호출한다.
System.out.println("현재 채널은 " + t.channel + " 입니다.");
package ch06;
public class Ex6_1 {
    public static void main(String[] args) {
        Tv t;               // 기본 8가지 타입이 아니기떄문에 Tv는 참조변수
                            // Tv클래스 타입의 참조변수
        t = new Tv();       // Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장
        t.channel = 7;      // (변수사용) Tv인스턴스의 멤버변수 channel의 값을 7로 한다
        t.channelDown();    // (메서드호출)
        System.out.println("현재 채널은 " + t.channel + " 입니다.");
    }
}
class Tv { 
	// Tv의 속성(멤버변수)
	String color;           // 색상 
	boolean power;         	// 전원상태(on/off) 
	int channel;           	// 채널 
	// Tv의 기능(메서드) 
	void power()   { power = !power; }  // TV를 켜거나 끄는 기능을 하는 메서드  
	void channelUp()   { channel++; }  	// TV의 채널을 높이는 기능을 하는 메서드
	void channelDown() { channel--; }   // TV의 채널을 낮추는 기능을 하는 메서드
}
Tv t1 = new Tv();
Tv t2 = new Tv();
t2 = t1;
t1.channel = 7;
System.out.println("t1의 channel값은 " + t1.channel + " 입니다.");
System.out.println("t2의 channel값은 " + t2.channel + " 입니다.");
t10x100 → 0x100
| null | 
| false | 
| 0 | 
| power() | 
| channelUp() | 
| channelDown() | 
t20x200 → 0x200
| null | 
| false | 
| 0 | 
| power() | 
| channelUp() | 
| channelDown() | 
일때, t2 = t1; 으로 t20x200 부분이 쓸모없어지게 됨.
즉 메모리만 차지하는 불필요한 변수가 됨.
이때 등장하는게 GC(Garbage Collecter : 청소부)
주기적으로 메모리를 확인하고 있다가 사용할수 없게 된 변수(가 차지하는 메모리)를 제거
원래는 메모리 사용량을 개발자가 정하고, 사용 후 메모리를 정리해야하는데, GC가 알아서 해줌. 편리함
0x100 (O)0x100 (O)0x100| 0x100 | 
| color | 
| power | 
| channel | 
0x1000x200 (X)0x100| 0x100 | 
| color | 
| power | 
| channel | 
| 0x200 | 
| color | 
| power | 
| channel | 
public class arrEx6_8 {
    public static void main(String[] args) {
        Tv[] tvArr = new Tv[3];     // 1. 객체 배열 생성 (참조변수 배열 생성)
        System.out.println("==1= tvArr : " + Arrays.toString(tvArr));
        tvArr[0] = new Tv();        // 2. 배열안에 객체 생성 (참조변수 배열 안에 참조변수 생성)
        tvArr[1] = new Tv();
        tvArr[2] = new Tv();
        System.out.println("==2= tvArr : " + Arrays.toString(tvArr));
    }
}