java基础知识3---GC

1. 对象的状态:可达状态,可恢复状态(通过finalize可能使对象重新被引用),不可达状态

 

2. 对象的引用

    强引用:常用的java引用

    软引用:用SoftReference类来实现,如果内存不紧张,调用垃圾回收的时候,就没事,如果内存紧张的话,就会回收

    弱引用:用WeakReference类来实现,只要调用垃圾回收,就会被回收。

    虚引用:用PhantomReference类实现,对象如果只有一个弱引用,则和没有一样,并且不能通过虚引用获得。

                虚引用主要用于跟踪对象被垃圾回收的状态,虚引用不能单独使用,必须和引用队列一起使用。

    弱引用、软引用和引用队列联合使用,则会在对象回收之后,把相关引用放到引用队列中

    虚引用则会在垃圾回收之前把虚引用放到

 

3. 内存管理的小技巧

    1. 尽量使用直接量;

    2. 使用StringBuilder和StringBuffer(线程安全)来进行字符串的连接

    3. 尽早释放不用的对象

    4. 尽量少使用static对象

    5. 不要在循环体中创建对象

    6. 缓存经常使用的对象  hashMap

    7. 尽量少使用finalize方法

    8. 考虑使用SoftReference方法。但是使用的时候要判断是否为空,因为不稳定,会在内存紧张的时候被回收

   

你可能感兴趣的:(java)