Java(2) (복사, 가비지)

넙데데맨·2022년 3월 31일
0

클래스

클래스의 구성 요소 : 필드, 생성자, 메소드

필드

객체의 데이터가 저장되는 곳

생성자

객체 생성 시 초기화를 이해 실행되는 메소드

  • 오버로딩 가능
  • 리턴 불가능

기본 생성자

  • 인자가 없고 실행 내용도 없는 단순 리턴 생성자
  • 기본 생성자 외 생성자가 아예 없을 시 자동 생성된다
  • 다른 생성자가 있다면 자동으로 생성되지 않음

메소드

객체의 동작에 해당하는 실행 블록

this()

인자 수에 맞는 생성자 호출하기

  • 생성자에서만 사용 가능
  • 반드시 첫 줄에만 사용해야함

얕은 복사 / 깊은 복사

얕은 복사

한쪽에서 수정 발생 시 다른 쪽에도 영향을 끼친다
배열 등 = 연산자가 얕은 복사 수행

int[] a = {1,2};
int[] b = a;
b[0] = 3;
b[1] = 4;
System.out.println(a[0]+", "+a[1]);
System.out.println(b[0]+", "+b[1]);
// 결과
3, 4
3, 4

깊은 복사

for문을 통해 일일히 각각 배열 원소들을 초기화 시켜줌

객체 소멸

객체 메모리를 JVM에게 돌려줘 가용 메모리에 포함
가비지 사용하지 않게 된 객체 메모리
가비지 컬렉션 가비지를 회수하여 가용 메모리 공간을 늘림
(JVM이 가용 공간이 일정 크기 이하로 줄어들게 되면 자동으로 가비지 회수)
가비지 컬렉터 가비지 컬렉션을 하는 주체

profile
차근차근

0개의 댓글