[자바] 신입 개발자 기술면접 질문 정리 -(2)

윤재열·2022년 8월 13일
0

CS지식

목록 보기
12/16

자바의 메모리 영역에 대해 설명해주세요.

  • 자바의 메모리 공간은 크게 Method 영역, Stack 영역, Heap 영역으로 구분되고, 데이터 타입에 따라 할당됩니다.
  • 메소드(Method) 영역 : 전역변수와 static변수를 저장하며, Method영역은 프로그램의 시작부터 종료까지 메모리에 남아있다.
  • 스택(Stack) 영역 : 지역변수와 매개변수 데이터 값이 저장되는 공간이며, 메소드가 호출될 때 메모리에 할당되고 종료되면 메모리가 해제된다. LIFO(Last In First Out) 구조를 갖고 변수에 새로운 데이터가 할당되면 이전 데이터는 지워진다.
  • 힙(Heap) 영역 : new 키워드로 생성되는 객체(인스턴스), 배열 등이 Heap 영역에 저장되며, 가비지 컬렉션에 의해 메모리가 관리되어 진다.

각 메모리 영역이 할당되는 시점은 언제인가요?

  • Method 영역 : JVM이 동작해서 클래스가 로딩될 때 생성
  • Stack 영역 : 런타임시 할당
  • Heap 영역 : 컴파일 타임 시 할당

※ 컴파일 타임 : 소스코드가 기계어로 변환되어 실행가능한 프로그램이 되는 과정

※ 런타임 : 컴파일 타임 이후 프로그램이 실행되는 때

new String()과 리터럴("")의 차이에 대해 설명해주세요.

  • new String()은 new 키워드로 새로운 객체를 생성하기 때문에 Heap 메모리 영역에 저장되고,
    ""는 Heap 안에 있는 String Constant Pool 영역에 저장됩니다.

접근 제한자(Access Modifier)에 대해 설명해주세요.

  • 변수 또는 메소드의 접근 범위를 설정해주기 위해서 사용하는 Java의 예약어를 의미하며, 총 4 가지 종류가 있습니다.
  • public - 접근 제한이 없다. (같은 프로젝트 내 어디서든 사용 가능)
  • protected - 해당 패키지 내, 다른 패키지에서 상속받아 자손 클래스에서 접근 가능하다.
  • (default) - 해당 패키지 내에서만 접근 가능
  • private - 해당 클래스에서만 접근 가능
profile
블로그 이전합니다! https://jyyoun1022.tistory.com/

0개의 댓글