2010-02-08 5 views
0

작성된 프로그램을위한 Java의 메모리 할당을 설명하십시오.Java에서 메모리 할당

+2

보다 구체적으로 설명해야합니다. –

+1

좀 더 명료해야합니다. 메모리 할당의 어떤면을 알고 싶습니까? – Andrew

답변

6

일반적으로 메모리는 Java "heap"에 자동으로 만들어집니다. 자동으로 관리됩니다. 객체가 더 이상 참조되지 않으면 결국 가비지 수집기는 사용 가능한 풀에 있었던 메모리를 반환합니다. java.sun.com 사이트에서 자세한 내용을 확인할 수 있습니다 (예 : overview of memory management). 특히 Sun의 JVM 구현 HotSpot과 관련하여 PDF on it이 있습니다.

프로그래머가 할당 및 릴리스를 직접 제어 할 수있는 언어 (예 : C)와는 대조적입니다. 자바에서 방금 행복하게 환경에 그것을두고 :

void doSomething() { 
    NiftyObject joe; 

    joe = new NiftyObject(); // Allocation 

    // ...use joe for something... 

    // Done; no "free" call (or similar) required 
} 

joe이 범위를 벗어나 때,, joe (함수가 반환 내가 여기에 있으리라 믿고있어이 기능은 joe을 반환하거나 어딘가에 저장하지 않습니다) 은 가비지 수집기에서 수집 한 일 수 있습니다. 실제로 이 발생하면은 전적으로 구현 및 환경에 따라 다릅니다.

+1

그냥 가비지 수집기에 대한 좋은 기사가 있습니다. http://www.javaworld.com/javaworld/jw-08-1996/jw-08-gc.html –

+0

Stephen에게 감사드립니다. 아주 오래되었지만 (1996), 그 개념은 여전히 ​​유효합니다. 그가 어떤 세부 사항에 빠지면 (그리고 그는 첫 페이지에 없을 것이라고 말합니다), 물건이 옮겨 졌음을 전제로 조금씩 '소금 한알'을 가지고 가야합니다. 그러나 처음부터 끝내는 것이 좋을 것 같습니다. –