既然 Java 的垃圾回收机制能够自动的回收内存,怎么还会出现内存泄漏的情况呢
伊谢尔伦
伊谢尔伦 2017-04-18 10:49:43
0
10
858

既然 Java 的垃圾回收机制能够自动的回收内存,怎么还会出现内存泄漏的情况呢

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(10)
Ty80

메모리 리소스는 제한되어 있습니다. 가비지 수집은 "쓰레기"만 재활용합니다. 프로그램 실행에 유용한 개체는 재활용되지 않습니다.

小葫芦

메모리 오버플로에는 두 가지 상황이 있습니다. 하나는 무한 재귀 호출과 같은 스택 오버플로입니다. 힙 오버플로도 있습니다. 즉, new에서 나오는 객체는 항상 new와 같이 즉시 소멸되지 않습니다.

黄舟

잘못 작성된 일부 프로그램은 GC 메커니즘이 적용되기 전에 객체를 무한정 생성하기 때문입니다.

大家讲道理

일반적으로 Java의 메모리 누수는 프로그램에 더 이상 필요하지 않은 할당된 메모리를 회수할 수 없다는 사실을 의미합니다.
가비지 수집 메커니즘은 객체와 루트 객체의 연결 가능성을 통해 메모리를 회수할 수 있는지 여부를 결정합니다. 그러나 프로그래밍 오류 또는 기타 이유로 인해 만료된 객체 참조는 여전히 유지되며 가비지 수집기가 관련 객체를 회수할 수 없습니다. 공간.

伊谢尔伦

맨홀을 차지하고 똥을 싸지 않으면 할 수 있는 일이 없습니다.
동료가 쓴 블로그를 읽어보시길 권합니다: http://blog.csdn.net/zhanggan...

Peter_Zhu

일부 객체는 더 이상 필요하지 않지만 항상 참조되며 재활용할 수 없습니다.

PHPzhong

인간이 만든 것은 인간 자신을 능가할 수 없습니다. Java의 GC 알고리즘은 인간이 작성했지만 일부 사람들은 목숨을 걸고 GC로 재활용할 수 없는 코드를 작성합니다.

小葫芦

中国那么大,为什么还有人在朝阳区懵逼과 동일합니다.

PHPzhong

제가 이해한 내용이므로 틀렸다면 정정해 주시기 바랍니다.
JDK6에서는 String의 메소드를 subString이라고 하며, 이는 하위 문자열을 생성하는 데 사용됩니다. 더 빠른 생성을 위해 String에는
String(int offset, int count, char value[]) {

생성자가 있습니다. 으아아아

}
은 원래 문자열 배열을 직접 가리킵니다. 우리 모두는 상수 풀의 새로운 String 문자열이 매번 생성된다는 것을 알고 있습니다. 그러나 이 참조로 인해 원래 문자열이 재활용되지 않습니다. subString의 값이 그를 가리킬 것이기 때문입니다. 이로 인해 메모리 누수가 발생합니다.

JVM은 프로그래머의 큰 간섭 없이 자체적으로 GC를 수행합니다. 그러나 일부 잘못된 작업으로 인해 더 이상 사용할 필요가 없는 일부 객체에는 여전히 참조가 있어 메모리 누수가 발생합니다.

洪涛

JVM: 프로그래머들이 쓰레기를 붙잡고 있어서 정말 당황스럽습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿