* 변수와 상수
- 변수 : 메모리의 주소값
- 상수 : 주소값에 해당하는 실제값
※ 변수는 로더(loader)에 의해 주소값으로 바뀜.
* 기본형과 참조형의 구분
- String, Double, Float 등...앞에 대문자가 붙으면 그 값들이 있는 주소값을 가리키는 것이다.
* A a = new A();
1. A : 클래스
2. a : 인스턴스변수
3. = : 할당연산자
4. new : new연산자
5. A() : 생성자
6. ; : 마침표
* 원래 'A'클래스는 특정 영역에 있다. 그러나 이를 사용할 때 실행이 느려지게 되어, 메모리 영역에 컴파일된 상태로 적재시켜놓게 된다. 그리고 new연산자를 통해 같은 메모리 영역에서 값이 복사되는 것이다. 그리고 복사된 메모리 영역의 주소값을 참조하는 것이 인스턴스변수 'a'이다.
* int i 와 A a의 구조는 같다!
* new연산자를 복사하는 이유 : 메모리 영역의 A클래스는 컴파일 된 영역이 아님! new연산자를 통해 나온 a인스턴스변수가 컴파일된 영역이다. 이 컴파일된 영역의 값을 오버로딩과 오버라이딩을 활용해 바꿔가면서 효율적으로 활용할 수 있는 것이다.
-> 플러스! 공통적으로 사용되는 그룹을 추상클래스(좀 약한것) 또는 인터페이스(더 강한것)로 묶어
줄 수 있다.
* exe파일은 '리버싱'이란 걸 통해 소스코드를 볼 수 있다.
* 용어정리
- 퍼스펙티브 : 뷰의 집합
- 드림위버에서의 뷰 : 패널이라 부름