1. JVM에서의 공간
1.1 JVM 구조
1.2 코드
public class Test { public static void main(String[] args){ int[] p1 = new int[5]; int[] p2 = new int[3]; int[] p3 = p1;
p3[2] = 100;
System.out.println(p1[2]);
p2 = p1; } } |
1.3 공간모습
*stack: 메소드를 호출할 때마다 메모리가 쌓인다, 처음에 쌓였던 메모리가 가장 늦게 반환된다 => main()이 가장 늦게 반환된다
main메모리 생성 -> p3 변수 메모리 생성 -> p3 변수 메모리 반환 -> main 메모리 반환
(p1, p2는 new로 생성했으므로 stack이 아닌 heap영역 )
2. garbage colection(가비지 컬렉션)이란?
- garbage : 참조하는 변수가 없는 메모리
- garbage collectior: garbage memory를 해제하는 객체(heap 영역을 관리), 자동으로 실행된다.
2.1 garbege는 언제 청소될까?
- idle time(운영체제가 한가한 시간에)
- 메모리가 부족할 때
* garbage가 생겼다고 garbage collection가 즉시 작동하는 것은 아니며, 무조건 작동하는 것은 아니다.
(프로그램이 잠깐 실행되는 경우에는 garbage collection이 작동하지 않는다.)
2.2 garbage를 최소하 하기 위해서는?
- 디자인 패턴에 따라 코드를 짜서 garbage생성을 최소화 하라!
3. 첨부파일
'개발 > Java' 카테고리의 다른 글
[JAVA] array(배열) (0) | 2017.01.01 |
---|---|
[JAVA] 객체 (0) | 2016.12.31 |
[JAVA] "인스턴스변수VS 메소드"와 "클래스 VS 객체" (0) | 2016.12.31 |
[JAVA] 기초03 (0) | 2016.12.31 |
[JAVA] 기초 - 주석 (0) | 2016.12.31 |