반응형

◎ 객체

▼ 객체 지향 프로그램의 대상 , 생성된 인스턴스

◎ 클래스

▼ 객체를 프로그래밍 하기위해 코드로 만든 상태

◎ 인스턴스

▼ 클래스가 메모리에 생성된 상태

◎ 멤버 변수

▼ 클래스의 속성, 특성

◎ 메서드

▼ 멤버 변수를 이용하여 클래스의 기능을 구현

◎ 참조변수

▼ 메모리에 생성된 인스턴스를 가리키는 변수

◎ 참조 값

▼ 생성된 인스턴스의 메모리 주소값

StudentTest.java 에서
Student studentLee = new Student();  // 인스턴스 : 생성과 동시에 자바 heap memory에 할당
//studentLee 는 참조변수이다 student.java의 인스턴스를 참조하고 있기 때문이다.
System.out.println(studentLee);
//이렇게 studentLee 를 출력하면 student.java의 참조값이 출력된다
//(ex: classpart.Student@a23d95)

Student.java 에서
 public int studentID;
 public String studentName;
 public String address;
//위 변수들을 멤버변수라고 한다

 public void showStudentInfo(){
}
//위의 것을 student.java 클래스의 메서드 라고 한다.

◎ Stack

▼ main에 작성한 변수등등 코드들은 stack 에 차례대로 쌓엿다가 제 할 일을 다하면 다시 없어지는 그런 구조이다. 먼저 작성한 변수들이 차례대로 쌓엿다가 젤 나중에 쌓인 애들이 먼저 없어지는 그런....(선입후출)

◎ HeapMemory

▼ JVM (자바 버츄얼 머신)이 가지고있는 가상 메모리이다. 인스턴스들이 쌓이져 주로 NEW 생성자를 사용하면 Heap memory에 쌓인다. 하지만 메서드 들은 heammemory 가 아닌 다른 곳에 있다.

◎ 그림 설명

▼ main 에서 Student studentLee = new student(); 를 하였을경우

student.java의 student 인스턴스가 heap 메모리에 적재되고

studentLee 는 heap 메모리에 적재된 student 인스턴스를 가르키고있는 참조 변수가된다.

하여 student.java의 멤버변수들을 studentLee.studentId 등으로 호출을 할 수 있는것이다.

studentKim 도 똑같다.

◎ 가비지콜렉션

▼ 자바에는 가바지콜렉션이라고 복잡한 알고리즘으로 쌓인 클래스가있는데 이놈이 주기적으로 HEAP MEMORY에 적재된 놈들을 사용하지않으면 다시 메모리를 반환하는 그런 편리한 역할을 한다. 이건 자바의 장점이다 C나 C++에는 없는..

◎ 변수의 생성과 메모리

반응형

'프로그래밍 > Java' 카테고리의 다른 글

[JAVA] 리터럴과 형변환  (0) 2022.01.04
Java - 라운드 로빈 (Round Robin) 예제  (0) 2019.05.29

+ Recent posts