内存机制
1.不論哪種語言的內存分配方式,都需要返回所分配內存的真實地址。
2.Java中對象是采用new或者反射的方法創建的
3.GC為了能夠正確釋放對象,會監控每個對象的運行狀況,對他們的申請、引用、被引用、賦值等狀況進行監控。
賦值,內存是可以賦值的,對應于object.setValue("1")
4.Java會使用有向圖的方法進行管理內存,實時監控對象是否可以達到,如果不可到達,則就將其回收
5.像HashMap、Vector等的使用最容易出現內存泄露,這些靜態變量的生命周期和應用程序一致,他們所引用的所有的對象Object也不能被釋放,因為他們也將一直被Vector等引用著。
6.Java中的內存泄露當然是指:存在無用但是垃圾回收器無法回收的對象。垃圾回收器無法回收,垃圾回收器無法回收。
垃圾回收器無法回收,垃圾回收器無法回收。
7.方法區內存溢出(outOfMemoryError:permgem space)
?????? 在jvm規范中,方法區主要存放的是類信息、常量、靜態變量等。
?????? 所以如果程序加載的類過多,或者使用反射、gclib等這種動態代理生成類的技術,就可能導致該區發生內存溢出,一般該區發生內存溢出時的錯誤信息為:
| 1 | outOfMemoryError:permgem space |
?
轉載于:https://www.cnblogs.com/panxuejun/p/5883264.html
總結
- 上一篇: android ViewPager滑动事
- 下一篇: 从零开始HTML