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

辽宁网站建站系统哪家好建筑网校排名前十的品牌

辽宁网站建站系统哪家好,建筑网校排名前十的品牌,急招大龄工45到55岁,网站建设顺德(1)五种引用_强软弱 实线箭头表示强引用,虚心线表示软弱虚终结器引用 在平时我们用的引用,基本都为强引用 ,比如说创建一个对象通过运算符赋值给了一个变量,那么这个变量呢就强引用了刚刚的对象 强引用的…

(1)五种引用_强软弱

实线箭头表示强引用,虚心线表示软弱虚终结器引用 

在平时我们用的引用,基本都为强引用 ,比如说创建一个对象通过=运算符赋值给了一个变量,那么这个变量呢就强引用了刚刚的对象

强引用的特点:通过GC Root的引用链, 能够找到它,他就不会被垃圾回收

C对象   (GC Root)通过引用链可以找到A1对象,那么它不能回收的

B对象   (GC Root)通过引用链可以找到A1对象,那么A1它不能回收的

只有GC Root对它的引用都断开时,它才能被垃圾回收

软 弱引用:只要A2和A3这两个对象没有被直接的强引用所引用,那么当垃圾回收时,都可能被回收掉 

当发生了垃圾回收,回收完发现内存不够,那么他会把软引用所引用的这个A2对象回收掉 

当发生了垃圾回收,不管是不是内存充足,都会把弱引用所引用的A3对象回收掉

 

 软引用可以配合一个引用队列:

当软引用的对象被回收掉之后软引用自身也是一个对象,在创爱时分配了一个引用队列,当它所引用的对象被回收时软引用就会进入这个队列,弱引用也是如此

为什么做这样的一个处理呢?因为软引用或者弱引用也好他们自身也用占用一定的内存,如果想把他们两个占用的内存做进一步的释放需要使用这个引用队列找到他们,然后作进一步的处理

(2)五种引用_虚引用和终结器引用

虚引用和终结器引用必须配合引用队列来使用,也就是说当虚引用创建的时候关联一个引用对列,当终结器引用创建的时候也会关联一个引用对列

当创建ByteBuffer对象时会创建一个名为Cleaner的虚引用对象,ByteBuffer会分配一块直接内存,会把直接内存地址传递给虚引用对象,当ByteBuffer以后没有别强引用后,他自己可以别垃圾回收掉了,但是它分配的那个直接内存并不能被java垃圾回收所管理,所以当ByteBuffer别回收的时候,让虚引用对象进入引用队列

引用队列会有一个referencrHandler的线程去这个队列里找有没有一个新入队的Cleaner,如果有的haul会调用Cleaner中的方法clean(),根据前面记录的直接内存的地址,调用Unsafe的freeMemary()方法释放掉直接内存,这样就会保证直接内存导致的内存泄露

我们知道所有的对象都会继承于Object对象父类,Object里面都会有一个finallize()方法,一个终结方法,当我这个对象重写了终结方法,并没有强引用B对象,那么它可以当成垃圾进行回收,那么这个终结方法在什么时候调用呢?那就是靠的终结器引用达到这个目的,当没有强引用我的这个对象时,对象会由虚拟机帮我们创建它对应的终结器引用,当这个对象A4被垃圾回收时把终结器引用也加入引用队列,再由一个优先级很低的一个线程在某个时机去这个引用队列是不是有终结器引用,有的话会找到我们要作为垃圾回收的这个对象并且调用它的finallize方法,等调用完了,等下一次垃圾回收时就可以回收掉了

finallize工作效率还是很低,第一次回收时不能把它回收掉,需要先把终结器引用入队,那个检查线程优先级很低,可能造成这个对象的finallize方法迟迟不能调用这个对象占用的内存也迟迟不能释放,索引我们不推荐使用finallize去释放资源的一个理由 

(3)软引用_应用

设置堆聂村大小20兆

我们这往List集合里面循环放4个字节的数组,比如说放4byte的图片,由于图片的数量过多,我们用强引用来引用这个图片资源,就会导致下面的内存溢出的错误,这些不重要的资源,能不能在内存紧张时,把它占用的内存释放掉,以后用到这个图片我再读取一下不就行了嘛,就不是使用给这个强引用场景了需要使用弱引用 

我们不使用List直接去引用Byte数组啦,他们之间加了一个SoftRerence软引用对象,软引用对象呢再间接引用Byte数组,

现在List和SoftRerence之间是强引用,SoftRerence和Byte数组是一个软引用了

加上垃圾回收的虚拟机参数:

循环5次并没有发生内存的溢出,但是在最后再一次循环数组发现只有最优一个有数据,前面几个都被回收掉了,只有最后一个保留了下来

在第三次循环时内存已经很紧张了,触发了一次垃圾回收 ,第四次循环,发现还是不够又触发了一次MinarGC回收效率不高又触发了一次Full GC,还是没有回收多少,然后触发了软连接的垃圾回收,一次垃圾回收后如果空间还是不够他就把软连接引用的对象释放掉,这次垃圾回收之后我们发现新生代和老年代都得到巨大回收,代价呢呢吧前四次的对象都回收掉了,只要最后一个放了进去

    新生代占77%,老年代占7%

 

http://www.yayakq.cn/news/379427/

相关文章:

  • 网站建设申请书wordpress小程序商城
  • 做网站公司如何选做网站所用的技术
  • 网站开发人才html5的网站有哪些
  • phpcms律师网站源码兴县做网站的公司
  • 建站之星视频自己做一个网站
  • 杭州设计公司logo苏州seo推广公司
  • 深圳市建设培训中心网站邢台seo排名
  • 网站建设风险的特征sem百度竞价推广
  • 有机玻璃东莞网站建设技术支持微软网站开发工具
  • 应该双网站做电路设计的兼职网站
  • 做静态网站的步骤欧米伽官方网站手表价格
  • 嘉兴制作网站做网站容易吧
  • 国外 网站 欣赏重庆网上房地产官网查询备案价
  • wordpress网站被黑如何设计好的网页
  • 网站制作用什么语言网站建设需要的图片怎么弄
  • 9色3ce眼影常州seo外包
  • 网站建设的目的意义怎么搜 织梦的网站
  • 网站开发的未来发展趋势广告设计创意
  • 哪个网站可以做兼职网站基本建设是什么
  • 临安区做网站的公司企业建设网站的必要性
  • 手机网站怎么制作软件亚马逊品牌网站建设
  • 宾馆网站模板企业产品推广平台
  • 丽江网站建设 莱芜wordpress中的分类页
  • 广东专业做网站排名公司哪家好seo顾问服务 品达优化
  • 网站互联网接入商火炬开发区网站建设
  • 学校网站管理与建设办法seo快速收录快速排名
  • 丰都网站建设报价梅河口网站开发
  • 网站改版 影响谷歌sem推广
  • 织梦网站备份建设网站账号密码不区分大小写
  • thinkphp5做的网站宣传册设计与制作模板