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

亚马逊计划裁员1万人b2b网站推广优化

亚马逊计划裁员1万人,b2b网站推广优化,网站备案正常多久,crm平台是什么(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.yidumall.com/news/57967.html

相关文章:

  • 亿通网站建设教育培训网站模板
  • 发卡平台网站建设厦门seo招聘
  • 子目录创建网站下载百度地图2022最新版官方
  • 做外贸做什么英文网站好免费发布产品的平台
  • 沧州网站制作公司山西seo排名厂家
  • 做网站模板赚钱免费发布活动的平台
  • 怎么做网站多少钱包头网站建设推广
  • 快云服务器怎么做网站推广赚钱的微信小程序
  • 网站建设外包排名怎么网上宣传自己的产品
  • 红酒网站页面设计总结推广网站源码
  • 用vs2012做asp网站推广公司哪家好
  • 如何注册一家公司要多少钱临沂seo顾问
  • 南京城乡建设委员会的网站百度助手官网
  • 建设网站成都网站设计公司
  • 2016wap网站开发语言怎么做好网站营销推广
  • 网络营销 网站珠海百度seo
  • 动态网站开发书籍小红书软文案例
  • dreamweaver网站制作教程河南seo和网络推广
  • 公司做完网站怎么搜不到百度客户端下载
  • 帮人做网站收多少钱2020国内搜索引擎排行榜
  • 自己做网站教程营销型网站制作企业
  • 上虞做网站山西seo优化公司
  • 怎么样给公司做网站搜索引擎营销的特点是
  • 昆明做门户网站的公司全网营销渠道
  • 搜索网站制作教程推广策划
  • 亿度网络 网站建设南宁seo优化公司排名
  • 如何提高网站加载速度慢网站的营销推广方案
  • 做欧洲电商看哪个网站市场推广策略 包括哪些
  • 网站建设的流程与思路学网络运营在哪里学比较好
  • 嫦娥直播seo运营招聘