当前位置: 首页 > news >正文

儿童教育类网站模板下载拓者设计吧注册码共享

儿童教育类网站模板下载,拓者设计吧注册码共享,wordpress 设置伪静态后,芝麻开门网站建设2019独角兽企业重金招聘Python工程师标准 1. 引用类型划分 强引用#xff1a;当内存不足时#xff0c;JVM宁可出现“OutOfMemoryError”错误停止#xff0c;也需要进行保存#xff0c;并且不会将此空间回收。 软引用#xff1a;当内存不足的时候#xff0… 2019独角兽企业重金招聘Python工程师标准 1. 引用类型划分 强引用当内存不足时JVM宁可出现“OutOfMemoryError”错误停止也需要进行保存并且不会将此空间回收。 软引用当内存不足的时候进行对象的回收处理往往用于高速缓存中。 弱引用不管内存是否紧张只要有垃圾产生立即回收。 幽灵引用虚引用和没有引用是一样的。 2. 强引用 1. 简单介绍 强引用是JVM默认的支持模式即在引用的期间内如果该堆内存被指定的栈内存有联系那么该对象就无法被GC所回收而一旦出现内存空间不足就会出现“OutOfMemoryError”。2. 范例观察强引用 测试代码 public class TestDemo {public static void main(String[] args) {Object obj new Object(); // 强引用默认的支持Object ref obj; // 引用传递obj null; // 断开了一个连接System.gc();System.out.println(ref);} }终端命令 javac TestDemo.javajava TestDemo结果 java.lang.Object15db9742结论 此时如果对象堆内存有栈内存的指向那么该对象将无法被GC回收。强引用是我们一直在使用的模式并且也是以后的开发中主要的使用模式因为强引用有这样的内存分配异常问题所以开发原则是尽量少实例化对象。3. 软引用 1. 简单介绍 在很多的开源组件之中往往会使用软引用作为缓存组件出现其最大的特点内存不足时回收充足时不回收。 想实现软引用需要单独的一个类来实现控制java.lang.ref.SoftReference 2. 范例观察软引用 测试代码 import java.lang.ref.SoftReference;public class TestDemo {public static void main(String[] args) {Object obj new Object();SoftReferenceObject ref new SoftReferenceObject(obj); // 软引用obj null; // 断开连接System.gc();System.out.println(ref.get());} }终端命令 javac TestDemo.javajava TestDemo结果 java.lang.Object15db9742结论 软引用在内存不紧张的情况下不会被回收。3. 范例观察内存紧张情况下的软引用 测试代码 import java.lang.ref.SoftReference;public class TestDemo {public static void main(String[] args) {Object obj new Object();String str hello world !!!;SoftReferenceObject ref new SoftReferenceObject(obj);obj null;try {for (int i 0; i 10000; i) {str str;str.intern();}} catch (Throwable e) {}System.gc();System.out.println(ref.get());} }终端命令 javac TestDemo.javajava -Xmx10m -Xms10m TestDemo结果 null结论 软引用在内存紧张的情况下会被回收。4. 弱引用 1. 简单介绍 弱引用只要一进行gc处理那么所引用的对象将会立即被回收。弱引用需要使用的是Map接口的子类java.util.WeakHashMap。2. 范例观察弱引用 测试代码 import java.lang.ref.SoftReference; import java.util.Map; import java.util.WeakHashMap;public class TestDemo {public static void main(String[] args) {String key new String(shadowolf);String value new String(www.shadowolf.cn);MapString, String map new WeakHashMapString, String();map.put(key, value);System.out.println(map);key null;System.out.println(map);System.gc();System.out.println(map);} }终端命令 javac TestDemo.javajava TestDemo结果 {shadowolfwww.shadowolf.cn} {shadowolfwww.shadowolf.cn} {}结论 一旦出现GC则必须进行回收处理并且一回收一个准。3. 范例观察 java.lang.ref.WeakReference 测试代码 import java.lang.ref.SoftReference; import java.lang.ref.WeakReference; import java.util.Map; import java.util.WeakHashMap;public class TestDemo {public static void main(String[] args) {String key new String(shadowolf);WeakReferenceString ref new WeakReferenceString(key);System.out.println(ref.get());key null;System.out.println(ref.get());System.gc();System.out.println(ref.get());} }终端命令 javac TestDemo.javajava TestDemo结果 shadowolf shadowolf null5. 引用队列 1. 简单介绍 引用队列保存那些准备被回收的对象。很多时候所有的对象的回收扫描都是从根对象开始的那么对于整个GC而言如果要想确定哪些对象可以被回收就必须确定好引用的强度这个也就是所谓的引用路径的设置。2. 引用队列的操作流程 单条引用路径的可及性判断在这条路径上最弱的一个引用决定对象的可及性。 多条引用路径的可及性判断在这几条路径上最强的一个引用决定对象的可及性。 例如如果要找到对象5那么1找到5属于“强 软”2找到5属于“强 弱”。软引用比弱引用保存的强。所以这个时候对于对象的引用而言如果要进行引用关联的判断那么就必须找到强关联为了避免非强引用对象所带来的内存引用问题所以提供引用队列的概念。如果在创建一个软引用或弱引用对象使用了引用队列的方式那么这个对象在回收之后会自动保存到引用队列之中。 3. 范例使用引用队列 测试代码 import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference;public class TestDemo {public static void main(String[] args) throws Exception {Object obj new Object();ReferenceQueueObject queue new ReferenceQueueObject();WeakReferenceObject ref new WeakReferenceObject(obj, queue);System.out.println(queue.poll());obj null;System.gc();Thread.sleep(100); // 保存引用队列需要点时间System.out.println(queue.poll());} }终端命令 javac TestDemo.javajava TestDemo结果 null java.lang.ref.WeakReference15db9742结论 被回收的弱引用对象被保存到了引用队列中。引用队列主要做一些被回收对象的控制。6. 幽灵引用虚引用 1. 简单介绍 永远取得不了的数据就叫幽灵引用。2. 范例观察幽灵引用 测试代码 import java.lang.ref.PhantomReference; import java.lang.ref.ReferenceQueue;public class TestDemo {public static void main(String[] args) throws Exception {Object obj new Object();ReferenceQueueObject queue new ReferenceQueueObject();PhantomReferenceObject ref new PhantomReferenceObject(obj, queue);System.gc();System.out.println(ref.get());System.out.println(queue.poll());} }终端命令 javac TestDemo.javajava TestDemo结果 null null结论 所有保存在幽灵引用类型中的数据都不会真正的保留。 转载于:https://my.oschina.net/shadowolf/blog/1837258
http://wiki.neutronadmin.com/news/381790/

相关文章:

  • 个体工商户可以申请网站建设吗互联网运营自学课程
  • 泉州建设网站制作通过网站做国际贸易的成本
  • 郑州网站建设网站建设西平县建设局网站
  • 100m光纤做网站网站制作软件手机
  • 郑州的网站建设公司哪家好网站 昆明
  • 7天精通网站建设实录百度推广账号
  • 做网站设计哪里有wordpress风格
  • 有人在相亲网站骗人做传销淘宝运营培训机构
  • 佛山网站建设no.1泰安市房产信息网官网
  • 网络公司排名100名网站seo排名优化软件
  • 计算机做网站长沙公共资源交易中心官网
  • 可视化设计最重要的是确定网站的网站前端设计与制作
  • 开封市建设中专网站手机app网站制作
  • 网站底部制作宣传片制作公司前景
  • 樟木头仿做网站公司网站的ftp是什么
  • 手机网站制作代码网赌网站怎么做的
  • 网站 备案简单代码大全
  • 湘乡网站建设举报网站建设自查报告
  • 网站建设注意要求广西区建设厅网站
  • 学做网站论坛注册公司实缴和认缴有什么区别
  • 泗阳做网站做cpa搭建哪个网站比较好
  • 网站推广营销运营方式手机可以看的网站
  • app营销网站建设wordpress 兼容性
  • 关于网站备案的44个问题seo整站优化报价
  • 建购物网站的详细步骤徐州建站模板公司
  • 如何建设好企业的网站维护WordPress导航条之间得跳转
  • 新手学做网站 iso ed2kapp宣传推广方案
  • 环保空调东莞网站建设惠州seo排名外包
  • 漳州电脑网站建设自己用钢管做里闪弹枪视频和照网站
  • 北京建设工程联合验收网站网站备案 影响