개발일지

프로세스와 쓰레드
Os는 프로세스 단위로 가상메모리공간을 제공하며 한프로세스는 최소 1개의 쓰레드를 가지고 있음 쓰레드는 프로세스의 가상메모리 공간을 사용 Os는 Process단위로 각종 접근권한을 통제 보통 접근은 file에 대한 접근을 의미 JVM은 사용자모드 응용 프로그램 (Process) 프로세스 = 집 쓰레드 = 사람 만약 여러사람이라면 예의가 중요. = 동기화.
  • 따라라란라란
JVM 힙
JVM 메모리 구조에서 힙(Heap)과 스택(Stack)의 차이점은 무엇이며, 각각의 영역에서 어떤 데이터가 저장되는지 설명하세요. 스택은 정적할당, 힙은 동적 할당 객체와 배열이 런타임에 생성되며, 필요에 따라 크기가 유연하게 조정됩니다. 메서드 호출 시 프레임(Frame)이 고정된 크기로 스택에 쌓이고, 메서드 종료 시 자동으로 제거됩니다. 데이터 저장 기간 힙: 객체는 명시적으로 가비지 컬렉션(Garbage Collection)에 의해 제거될 때까지 메모리에 유지됩니다. 스택: 메서드 호출이 끝나면 해당 프레임이 즉시 pop되어 메모리가 해제됩니다. 즉, 스코프 기반으로 짧은 생명주기를 가집니다. 스택은 프레임단위로 지역변수, 파라메터, 참조변수, 메서드 호출 스택등이 저장됨. 힙에는 객체 인스턴스와 배열이 저장됨. 스택은 쓰레드 별로 독립적이고 힙은 공유함. • 힙 메모리에서 발생할 수 있는 메모리 누수를 디버깅하는 방법에 대해 설명하세요. 가비지 콜렉션 상황을 모니터링 힙덤프 힙 덤프는 특정 시점의 메모리 상태를 스냅샷으로 저장해 어떤 객체가 메모리를 점유하고 있는지 분석할 수 있게 합니다. • 스택 오버플로우(Stack Overflow)가 발생하는 이유와 이를 방지하기 위한 전략을 논의하세요. 무한 재귀 또는 깊은 재귀 호출 과도한 메서드 호출 깊이 스레드 관리 • JVM 메모리 구조에서 메타스페이스(Metaspace)의 역할과 힙 메모리와의 차이점을 설명하세요. 메타스페이스 = 클래스와 관련된 정보 힙메모리 = 인스턴스에 관한 정보. 실제 예시 public class Person { private String name; public String getName() { return name; } } 메타데이터 내용:
  • 따라라란라란