性能优化--1.基础概念

1.内存泄漏:一个对象已经不用了,但是在内存中还保存这个对象的应用GC无法回收。很多的内存泄漏会导致内存溢出,就是内存不够用了。
2.Java内存分配机制
(1)静态的:在编译的时候就分配好,整个程序运行期间一直存在。存放静态数据。
(2)栈式的:执行函数时,函数的内部变量,函数执行完自动释放。速度快、内置在处理器里面,容量有限。
(3)堆式的:new 方法的时候。堆管理麻烦。
类的成员变量(基本数据类型、对象的应用、对象实体)都是存在堆区,因为所归属类本身就要new。
局部变量的基本数据类型和引用存储于栈当中,引用的对象实体存储在堆中。
总结 : 需要new出来的在堆中,方法内部的基本数据类型和引用在栈中。

3.StrongReference强引用、SoftReference软引用、WeakReference弱引用、PhatomReference 虚引用

StrongReference从不回收JVM停止才会终结
SoftReference内存不足时回收,结合ReferenceQueue使用
WeakReference GC时回收
PhatomReference GC时回收

你可能感兴趣的:(性能优化--1.基础概念)