-
[CS/JAVA] static / static을 사용하는 이유 / Inner Class / 내부 클래스를 static으로 해야 하는 이유CS/Java 2025. 1. 22. 21:48
• static에 대해 설명해주세요.
- static 키워드를 사용한 변수나 메소드는 클래스가 메모리에 올라갈 때 자동으로 생성되며, 클래스 로딩이 끝나면 바로 사용할 수 있습니다. 즉, 인스턴스(객체) 생성없이 바로 사용 가능합니다.
- 모든 객체가 메모리를 공유한다는 특징이 있고, GC 관리 영역 밖에 있기 때문에 프로그램이 종료될 때까지 메모리에 값이 유지된 채로 존재하게 됩니다.
• static을 사용해야 하는 이유에 대해 설명해주세요.
- static은 자주 변하지 않는 값이나 공통으로 사용되는 값 같은 공용 자원에 대한 접근에 있어서 매번 메모리에 로딩하거나 값을 읽어들이는 것보다 일종의 '전역 변수'와 같은 개념을 통해 접근하는 것이 비용도 줄이고 효율을 높일 수 있습니다.
- 인스턴스 생성 없이 바로 사용 가능하기 때문에 프로그램 내에서 공통으로 사용되는 데이터들을 관리할 때 이용합니다.
• Inner Class(내부 클래스)의 장점에 대해 설명해주세요.
- 내부 클래스에서 외부 클래스의 멤버에 손쉽게 접근할 수 있습니다.
- 서로 관련있는 클래스들을 논리적으로 묶어서 표현함으로써, 캡슐화를 증가시키고, 코드의 복잡성을 낮출 수 있습니다.
- 외부에서는 내부 클래스에 접근할 수 없으므로, 코드의 보안성을 높일 수 있습니다.
• 내부 클래스를 static으로 해야 하는 이유에 대해 알고 있나요?
- 외부 참조로 인한 메모리 누수 현상을 방지하기 위함입니다.
- 내부 클래스가 바깥 클래스를 외부 참조함으로써, 외부 클래스는 필요없어지고 내부 클래스만 남아있을 경우, 외부 클래스를 GC 대상으로 삼아 메모리에서 제거해야 하지만, 외부 참조로 인하여 메모리에서 제거되지 않고 잔존하게 됩니다.
* 위 글은 아래 문서를 참고해 작성했습니다.
https://dev-coco.tistory.com/153
신입 개발자 기술면접 질문 정리 - 자바
💡 Java의 특징을 설명해주세요.Java는 객체지향 프로그래밍 언어입니다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어
dev-coco.tistory.com
review 1회독 2회독 3회독 4회독 5회독 check ✅(1/23) 반응형'CS > Java' 카테고리의 다른 글