접근제한자 와 가비지 컬렉션

접근 한정자(Access Modifier, 제한자, 수정자)

  • 클래스간에 멤버 변수나 멤버 메소드에 접근하는 것을 제한할 수 있습니다.

  • 클래스간에 간섭을 줄이기 위해 적용합니다.

  • 객체지향에서 캡슐화를 구현하는 핵심 기술입니다.

  • 클래스간에 간섭을 막을 수 있음으로 콤포넌트의 독립성을 강화할 수 있습니다.


접근 제한자 같은 클래스 같은 패키지 상속관계의 다른 패키지 관련없는 다른 패키지


  • private ○ X X X (중요)

  • friendly ○ ○ X X

  • protected ○ ○ ○ X

  • public ○ ○ ○ ○ (중요)

특성보장

private, 보안성이 향상됨, 콤포넌트의 독립성이 보장됩니다. 독립성이 요구되는 WEB관련 프로그램에서는 private 제한자가 아주 많이 사용됩니다.

  • 콤포넌트간 간섭을 최소화하여 독립성을 유지할 수 있습니다.

  • private변수는 해당클래스안에서만 접근할 수 있습니다. 따라서 이 변수에 접근하려면 public 형태의 메소드를 이용해야 합니다.

  • 데이터 은닉 및 캡슐화에 사용됩니다.

private 멤버 변수

private 멤버 변수(전역변수, 인스턴스 변수)에 값을 할당하고 가져오기(★)

  • 입력되는 값을 검증하여 입력합니다.

  • 외부에서 변수의 값을 마음대로 조작할 수 없음으로 안정적인 프로그램을 구현할 수 있습니다.

Data.java

DataAccess.java

private method 응용

PrivateTest.java

PrivateTestMain.java

Garbage Collecting

  • member 변수와 객체에 할당된 메모리를 회수 합니다.

  • 자바 가상 기계가 자동으로 수행 합니다.

  • 멤버 메소드등 일반 메소드안에서 생성된 객체는 메소드 종료시 자동으로 메모리 회수됩니다.

  • null 값을 가지고 있는 객체변수는 회수의 대상이 됩니다.

  • 우선 순위가 낮은 스레드로 수행, 일반적인 경우 모든 스레드가 종료된 후 수행

  • gc()를 실행되면 강제로 메모리 회수 작업을 하게되며 finalize()메소드가 호출된다. 그러나 gc()자체는 많은 부하를 동반함으로 JVM이 실행하도록 하는것이 좋습니다.

Garbage.java

GarbageTest.java

Last updated