首页 文章 精选 留言 我的

精选列表

搜索[攻击面管理],共10008篇文章
优秀的个人博客,低调大师

Java - JVM 内存管理

1. 查找失效对象 1.1 引用计数法 可以为每一个对象添加一个引用计数器,用于存储当前对象被几处引用。 引用计数法简单高效,但无法解决循环引用问题,如A引用B,B又引用A,且这两个对象不再被其它对象引用,那么在使用引用计数法的情况下,这两个对象的引用数均为1,且无法减至0。 1.2 可达性分析算法 可以通过一系列成为“GC Roots”的对象作为起始点,并从这些节点向下搜索,当一个对象到GC Roots不可达,则证明该对象不可用。 图1-1 GC Roots对象包括下面几种: o 虚拟机栈中引用的对象。 o 方法区中类静态属性引用的对象。 o 方法区中常量引用的对象。 o 本地方法栈中引用的对象。 一个对象要真正被清理,至少需要两次标记过程。 1.3 回收方法区 方法区垃圾回收的效率与性价比都远低于堆内存的回收。 主要回收两部分:废弃常量和无用的类。 2. 垃圾收集算法 2.1 标记-清除算法 图2-1 标记清除算法的标记阶段与清除阶段效率都不高,且会产生大量内存碎片。 2.2 复制算法 图2-2 将内存平分为两块,每次只使用其中一块。 当一块内存快用完时,可将存活的对象复制到另一块上面,然后将刚才使用的内存一次性清理掉。 该算法简单高效,且不会产生内存碎片,但由于有一半空闲内存,所以内存使用率不高。 HotSpot中,新生代内存结构为 1 * Eden + 2 * Survivor,每次只使用Eden区和其中一块Survivor区,当发生回收时,会将Eden与在用的Survivor中的存活对象复制到另一块Survivor区中。 根据HotSpot的内存结构,可见只有10%的内存(其中一块Survivor)被浪费,但此时有另一个问题,即实际情况下我们不能保证每次回收的存活对象都仅占内存的10%以下,所以当Survivor也不够用时,就需要依赖其它内存(老年代)做分配担保。 2.3 标记-整理算法 在对象存活率高的情况下,复制算法需要进行较多的赋值操作,效率会变低,同时备用空间也是对内存的一种浪费。 对于老年代,可能存在所有对象都存活的情况,所以直接使用复制算法是不合适的,所以出现了标记-整理算法。 图2-3 首先,标记。(这里标记的可能是所有存活对象,而非被回收对象,因为接下来需要移动存活对象,而不是清理回收对象) 然后,将存活对象向某一端移动,如图2-3,存活对象都会向上移动,其过程可能是所有存活对象依次在一端逐个覆盖。 最终,直接清理掉端边界以外的内存。 参考文献: [1]周志明.深入理解Java虚拟机[M].北京:机械工业出版社,2018.61-72

优秀的个人博客,低调大师

Confluence 6 管理文件

文件是被附加到 Confluence 的页面上的。请参考Upload Files页面中的内容来了解如何附加文件到页面中。 一旦文件被附加到页面上了,你可以下载,删除和编辑这些文件。例如,你可以根据需要上传一个文件的新版本,或者修改附加的页面为别的页面。 下载附加文件 任何具有查看页面权限的用户同时也可以下载页面中附加的任何文件。 希望下载一个单独的文件: 在文件预览中,单击下载(Download)Go to>Attachments然后在文件名上单击右键线程保存链接。 希望将页面中附加的所有文件下载成 zip 文件: Go to>Attachments单击下载全部(Download All)。 Confluence 没有提供下载一个空间中所有附件的功能。 https://www.cwiki.us/display/CONF6ZH/Manage+Files

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册