内存机制

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