Rozumiem, że gdy przydzielono nam bezpośredni kontakt, nie można go pozbyć się, ale zastanawiam się, czy obiekt do pakowania jest zbędny.Czy pakunki Java DirectByteBuffer są zbierane?
Na przykład, jeśli przydzieliłem nową dbb DirectByteBuffer, a następnie powielono (płytko skopiowałem) przy użyciu dbb.duplicate(), miałem dwa opakowania wokół tego samego kawałka pamięci.
Czy te opakowania są przedmiotem zbiórki śmieci? Gdybym miał
while(true){
DirectByteBuffer dbb2 = dbb.duplicate();
}
Czy w przyszłości sam OOM?
Właściwie DirectByteBuffer i jego pamięć natywna _might_ mogą być zbierane. Używa PhantomReference do zwolnienia natywnej pamięci przydzielonej. –