动态电子商务网站 制作,清河做网站报价,网站首页改版方案,集团网站建设新闻Java2增强了内存管理功能#xff0c; 增加了一个java.lang.ref包#xff0c;其中定义了三种引用类。这三种引用类分别为SoftReference、WeakReference和PhantomReference.通过使用这些引用类#xff0c;程序员可以在一定程度与GC进行交互#xff0c;以便改善GC的工作效率。… Java2增强了内存管理功能 增加了一个java.lang.ref包其中定义了三种引用类。这三种引用类分别为SoftReference、WeakReference和PhantomReference.通过使用这些引用类程序员可以在一定程度与GC进行交互以便改善GC的工作效率。这些引用类的引用强度介于可达对象和不可达对象之间。 创建一个引用对象也非常容易例如如果你需要创建一个Soft Reference对象那么首先创建一个对象并采用普通引用方式可达对象然后再创建一个SoftReference引用该对象最后将普通引用设置为null.通过这种方式这个对象就只有一个Soft Reference引用。同时我们称这个对象为Soft Reference 对象。 Soft Reference的主要特点是据有较强的引用功能。只有当内存不够的时候才进行回收这类内存因此在内存足够的时候它们通常不被回收。另外这些引用对象还能保证在Java抛出OutOfMemory 异常之前被设置为null.它可以用于实现一些常用图片的缓存实现Cache的功能保证最大限度的使用内存而不引起OutOfMemory.以下给出这种引用类型的使用伪代码 //申请一个图像对象 Image p_w_picpathnew Image();//创建Image对象 … //使用 p_w_picpath … //使用完了p_w_picpath将它设置为soft 引用类型并且释放强引用 SoftReference srnew SoftReference(p_w_picpath); p_w_picpathnull; … //下次使用时 if (sr!null) p_w_picpathsr.get(); else{ //由于GC由于低内存已释放p_w_picpath因此需要重新装载 p_w_picpathnew Image(); srnew SoftReference(p_w_picpath); } Weak引用对象与Soft引用对象的最大不同就在于GC在进行回收时需要通过算法检查是否回收Soft引用对象而对于Weak引用对象GC总是进行回收。Weak引用对象更容易、更快被GC回收。虽然GC在运行时一定回收Weak对象但是复杂关系的Weak对象群常常需要好几次GC的运行才能完成。Weak引用对象常常用于Map结构中引用数据量较大的对象一旦该对象的强引用为null时GC能够快速地回收该对象空间。 转载于:https://blog.51cto.com/jianshusoft/695169