////
Search

6/23

CS

CPU
32비트 , 64비트
메모리
C의 자료형
힙과 스택

Java

클래스
객체를 생성한다!
클래스는 언제나 대문자로 시작하는 것이 규칙.
int a = new Car(); 가 안되는 이유?
클래스 생성 시, 메모리에서 생기는 일
메소드 : 클래스 내의 함수들.
this : 객체를 조정하는 역할, 리모컨 (객체 주소)
Car car1 = new Car(); 를 할때, 객체와, 객체 리모콘을 생성한다.
리모콘은 객체를 this 라고 부르고, car1이 반환하는것은 객체가 아니라 객체 리모콘이다.
public class Main { public static void main(String[] args) { Car car1 = new Car(); // Car 객체와, 객체 리모콘 생성. // ^ 이 시점에서 리모콘은 2개가 생성됨. //heap에 객체가 만들어지고, 객체 안에 리모콘이 생성된다. //그리고 그 리모콘의 복사본은 stack에 생성된다. // car1에는 Car가 저장되는것이 아닌, 리모컨이 저장됨. // 변수는 객체를 담을 수 없다. //자동차의 개수는 new의 개수와 일치. Car car2; // car에는 null이 들어가고, 객체가 생성된 것은 아님. // 이 시점에서는 리모컨의 개수는 3개, Car는 1개. Car car3 = car1; // car1은 객체가 아님. 1번 자동차를 조정할수 있는 리모콘 // 이 시점에서 리모컨의 개수는 4개, Car는 1개. new Car(); // heap에 리모콘 생성, 하지만 곧 GC에 의해 사라짐. } }
Java
복사
public class Main { public static void main(String[] args) { Car car1 = new Car(); Car car2 = new Car(); car2 = car1; /* 1번 객체를 바라모는 외부 리모컨 : 1개 2번 객체를 바라보는 외부 리모콘 : 0개. */ // 이후 GC가 heap에 있는 car2를 삭제한다 // 추후 함수가 종료되면 stack이 삭제 // heap에 있던 Car1 객체를 바라보는 것이 아무도 없으니 Car1 삭제. } }
Java
복사
2가지 변수 타입!
that’s all for today