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

网站的服务器和空间六安哪家公司做网站好

网站的服务器和空间,六安哪家公司做网站好,做动态的网站的参考资料有哪些,西安网站开发招聘参考资料#xff1a;深入理解Java虚拟机#xff1a;JVM高级特性与最佳实践#xff08;第3版#xff09;周志明 在堆里面存放着 Java 世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”。 1、如何判…  参考资料深入理解Java虚拟机JVM高级特性与最佳实践第3版周志明 在堆里面存放着 Java 世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”。 1、如何判断对象存活 1.1 引用计数法 给对象增加一个引用计数器当对象被引用一次计数器加一、当引用失效时计数器减一 任何时候计数器为0的对象就不可能再被使用 这个方法虽然占用一定内存但是原理简单、效率也很高大多情况都是不错的算法。但Java虚拟机并没有使用这个方法因为这个方法还要考虑很多额外的情况配合大量处理逻辑才能解决问题。 引用计数法的缺点 public class ReferenceCountingtGC {public Object instance null;public static final int _1MB 1024 * 1024;//这个成员属性的唯一意义就是占点内存以便在GC日志中看清楚是否回收过private byte[] bigSize new byte[2 * _1MB];public static void testGC(){ReferenceCountingtGC objA new ReferenceCountingtGC();ReferenceCountingtGC objB new ReferenceCountingtGC();objA.instance objB;objB.instance objA;//假设在这发生GCobjA和objB能否被回收System.gc();} }这两个对象objA和objB已经不可能再被访问了但是它们因为互相引用对方导致它们的引用计数都不为零。 所以引用计数算法就无法回收他们 1.2 可达性分析算法 这个算法的基本思路就是通过一系列称为“GC Roots”的根对象作为起始节点集。 从这些节点开始根据引用关系向下搜索搜索过程所走过的路径称为“引用链”。 如果某个对象到GC Roots直接没有引用链就代表这个对象不能被使用。 可作为java中Gc Roots的对象包含哪些 虚拟机栈栈帧中的局部变量表中引用的对象。 方法区中的静态属性引用对象。例如被Static修饰的字符串 方法区中常量引用的对象。例如字符串常量池的引用 在本地方法栈中 JNI(即通常所说的 Native 方法)引用的对象。 java虚拟机内部的引用。例如数据类型对应的Class对象一些常驻对象OOM系统类加载器 所有被同步锁(synchronized 关键字)持有的对象。 反映 Java 虚拟机内部情况的 JMXBean、JVMTI 中注册的回调、本地代码缓存等。 2、再谈引用 无论是引用计数法还是可达性分析算法判断对象是否存活都和对象的引用分不开。 在jdk1.2以后对引用进行了扩充将引用分为 强引用 软引用 弱引用 虚引用 这四种引用强度依次递减。 2.1 强引用 强引用是最常见的引用类型是程序代码之间普遍存在的引用赋值例如这样的引用关系在任何情况下只要强引用还在JVM就不会回收被引用的对象。 Object obj new Object(); 2.2 软引用 软引用是用来描述一些还有用但非必需的对象。在系统将要发生内存溢出异常之前这类对象会被列为可回收的资源。在jdk1.2后提供了SoftReference类来实现软引用。 Object obj new Object(); SoftReferenceObject softReference new SoftReference(obj); 内存不足时GC会回收软引用指向的对象以释放空间避免OutOfMemoryError。 2.3 弱引用 弱引用也用来描述非必需对象但是其强度比软引用更弱只能生存到下一次垃圾回收发生之前。使用WeakReference类来实现弱引用。 Object obj new Object(); WeakReferenceObject weakReference new WeakReference(obj); GC工作时无论内存是否足够都会回收被弱引用关联的对象。 2.4 虚引用 虚引用是最弱的一种引用关系。无法通过虚引用来取得一个对象实例设置虚引用关联的唯一目的是在这个对象被收集器回收时收到一个系统通知。虚引用PhantomReference必须和引用队列ReferenceQueue联合使用。 ReferenceQueueObject queue new ReferenceQueue(); Object object new Object(); PhantomReferenceObject phantomReference new PhantomReference(object, queue); 3、生存还是死亡 真正宣告一个对象的死亡需要至少经历两次标记的过程 1、如果对象进行可达性分析后没有与GC Roots相连的引用链那么就会被第一次标记 接下来将会执行一次筛选筛选条件是对象是否有必要执行finalize()方法。假如对象没有覆盖finalize方法或者finalize方法已经被调用过。虚拟机都会将这两种情况视为没必要执行 如果这个对象被判断为有必要执行finalize方法那么对象将会被放在一个F-Queue队列中。并在稍后由一条虚拟机自动建立的、低调度优先级的Finalize线程去执行它们的Finalize()方法。 2、finalize方法是对象逃脱死亡的最后机会收集器将会对F-Queue中的对象进行第二次小规模的标记。 如果对象要拯救自己那么需要重新与引用链上的任何一个对象建立关联即可。 这种自救的机会只有一次,因为一个对象的 finalize()方法最多只会被系统自动调用一次 4、回收方法区 方法区回收的性价比较低 方法区主要回收两部分内容废弃的常量和不再使用的类型。 1、回收废弃常量的条件 已经没有任何字符串对象引用常量池的“Java”常量并且虚拟机中也没有其他地方引用这个字面量。 2、不使用类型的回收条件 该类的所有实例都被回收了也就是Java堆中不存在该类及其任何派生子类 加载该类的类加载器已经被回收 该类对应的 java.lang.Class 对象没有在任何地方被引用无法在任何地方通过反射访问该类的方法。
http://www.dnsts.com.cn/news/22837.html

相关文章:

  • 济南建设银行网站做竞价网站服务器多少钱
  • 做汽车网站开题报告的意义天津建行网站
  • .net网站做增删改免费的网站免安装
  • 广告软文是什么意思宁波seo网络推广咨询价格
  • 珠海企业网站建设报价成都公司注册费用
  • 林州企业网站建设wordpress 开启多用户
  • 商城网站建设制作注册的空间网站
  • 某企业网站网页设计模板中国建筑协会证书查询
  • centos7 wordpress网站saas网络推广平台
  • 视频在线网站免费观看html5购物网站
  • 开网站需要租用机房服务器价格北京网站备案负责人变更
  • 网站建设与管理计划书seo 怎么建设网站外链
  • 黄页88网站动态h5网站开发
  • 做二手网站有哪些网站纯色背景图怎么做
  • 正规的环保行业网站开发车网站建设策划
  • 戴南做网站linux下用python做网站
  • wordpress 重定向函数成都优化网站建设
  • 网站建设岗位有哪些关于做美食的网站
  • 外贸企业网站制作做网站创业
  • wordpress网站无法登陆广州网站建设怎么样
  • 利用微博网站做淘客四川建设厅网站复查中
  • ac域名的网站有啥不同湖南株洲建设局网站
  • 在东营怎么建网站数商云电子商务网站建设
  • 上海公司网站建设价格自己电脑做服务器上传网站 需要备案吗
  • html5 中文网站模板做网站的
  • 微信 网站设计模板房屋装修图片
  • 建站论坛系统4p营销理论
  • 济宁嘉祥网站建设吴中企业建设网站报价
  • 网站建设与维护期末考试题addaction wordpress
  • 郑州有哪些搞网站开发的公司教育网站设计