moondy.log
로그인
moondy.log
로그인
자바에는 포인터가 없는 이유
Moondy
·
2022년 5월 13일
팔로우
0
memory
0
포인터란?
메모리의 주소값을 저장하는 변수
어떤 이름(label)이 메모리의 어떤 주소를 가리키고 있는지 정보
자바에는 포인터가 없는 이유
자바에는 참조(Reference)가 있기 때문
포인터 vs 참조
포인터: 메모리를 직접 핸들링 할 수 있음
참조: 메모리를 직접 핸들링할 수 없음
포인터는 주소값을 임의로 변경할 수 있지만 개발자가 실수하면 바로 에거로 이어질 수 있다. Java에서는 개발자의 실수를 방지하기 위해 자바가 메모리 영역을 관리한다
GC(Garbage Collector)가 실행될 때 마다 Heap 영역의 객체의 주소가 계속 바뀌기 때문 (자바가 관리)
더이상 stack에서 참조되지 않는 Heap 영역의 객체들은 GC가 제거
GC의 장점
프로그래머 생산성 향상(메모리 관리 직접 하지 않아 실수 적음)
프로그램 보안상 메모리 직접 접근을 제한함으로써 시스템의 안정성과 보안성 보장
GC의 단점
극한의 성능을 발휘해야 하는 프로그램을 작성하려면 C 같이 저수준 제어가 가능한 언어가 가장 좋은데, Java는 개발자가 직접 메모리 관리를 못해 상대적으로 튜닝 불가능
garbage collecting이 일어나는 타이밍이나 점유 시간을 미리 예측하기 어렵다. 즉, 예측 불가능하게 일시적으로 정지할 수 있다.
Moondy
LLM Application을 개발중인 BackEnd 개발자
팔로우
이전 포스트
DB 데드락
다음 포스트
스마트 포인터
0개의 댓글
댓글 작성
관련 채용 정보