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

深网站建设php二次网站开发步骤

深网站建设,php二次网站开发步骤,wordpress mysqlli,电子商务网站建设市场分析关于垃圾回收算法的这道面试题#xff0c;几乎是所有 3 年以上的 Java 面试中必问的题目#xff0c;甚至有些好一点的公司会在校招时问到面试者。那么本文就系统的讲一下垃圾回收的算法#xff0c;和 Hotspot 虚拟机执行垃圾回收的一些实现细节#xff0c;比如安全点和安全… 关于垃圾回收算法的这道面试题几乎是所有 3 年以上的 Java 面试中必问的题目甚至有些好一点的公司会在校招时问到面试者。那么本文就系统的讲一下垃圾回收的算法和 Hotspot 虚拟机执行垃圾回收的一些实现细节比如安全点和安全区域等。因为各个平台的虚拟机操作内存的方法各不相同且牵扯大量的程序实现细节所以本文不会过多的讨论算法的具体实现只会介绍几种算法思想及发展过程。垃圾回收算法1、标记-清除算法标记-清除算法是最基础的算法像它的名字一样算法分为“标记”和“清除”两个阶段首先需要标记出所需要回收的对象标记完成后统一收集被标记的对象。优点 实现简单。缺点 产生不连续的内存碎片“标记”和“清除”的执行效率都不高。标记-清除算法执行过程图本文图片来自《深入理解Java虚拟机》2、复制算法复制算法就是将内存分为大小相同的两块当这一块使用完了就把当前存活的对象复制到另一块然后一次性清空当前区块。优点 执行效率高。缺点 空间利用率低 因为复制算法每次只能使用一半的内存。3、标记-整理算法也称标记-压缩算法标记-整理算法采用和标记清除算法一样的对象“标记”但后续不会对可回收对象进行清理而是将存活的对象往一端空闲空间移动然后清理边界以外的内存空间。优点 解决了内存碎片问题比复制算法空间利用率高。缺点 因为有局部对象移动相对效率不高。标记-整理算法执行过程图4、分代收集算法目前商用虚拟机都采用的是分代收集的算法这种算法按照对象存活周期把内存分为几块一般Java中分为新生代和老年代。把存活率低的对象分到新生代使用复制算法提高垃圾回收的性能老年代则存放存活率搞的对象使用标记-清除和标记-整理的算法提高内存空间使用率。新生代和老生代的具体介绍和参数配置后续的文章会详细讲解。垃圾回收执行细节本节将详细的介绍一下HotSpot虚拟机在执行垃圾回收时的一些细节目的是让读者更好的理解Java虚拟机。HotSpot虚拟机 它是Sun JDK和OpenJDK自定的虚拟机也是目前使用最广泛的虚拟机。垃圾回收流程 Java虚拟机在内存回收之前为了保证内存的一致性必须先暂停程序的执行也就是传说中的Stop The World简称STW在使用可达性分析算法枚举GC Roots标记出死亡对象再进行垃圾回收。垃圾回收遇到的问题 那既然是要暂停程序的运行就一定要保证停止的时间足够短并且可控不然带来的灾难将是毁灭性的。解决方案 显然HotSpot在设计的时候也考虑到了这个问题所以在JIT编译的时候就会使用OopMap数据结构来记录栈和寄存器上的引用这样虚拟机就直接知道了那些地方存放着对象的引用如下图为我编译String.hashCode()方法的部分本地代码可以看出使用OopMap数据结构存储了普通对象的指针引用。查看汇编的方法启动命令窗体执行 java-XX:UnlockDiagnosticVMOptions-XX:PrintAssemblyYouTestClass命令可能会报错 Couldnotload hsdis-amd64.dll;librarynotloadable;PrintAssemblyisdisabled报错解决方法使用编译好的hsdis.dll放到jre安装目录\bin\server目录下即可hsdis.dll地址地址https://pan.baidu.com/s/1-D6u0gnUx291LXS3bHOorA安全点Safepoint在OopMap的协助下HotSpot可以快速的完成GC Roots枚举但导致OopMap内容变化的指令很多而且如果给每个对象生成对应的OopMap会造成大量额外的空间这会导致GC成本很高所以HotSpot只会在“特定的位置”生成对应的OopMap这些位置就成为“安全点”。HotSpot也并不是任何时刻都会停顿下来进行GC只会在程序都到底安全点之后才会GC所以安全点的设置不能太少让GC等待时间太长也不能太多增大运行时的成本。安全点的两种线程中断方式抢断式中断不需要线程的执行代码去主动配合当发生GC时先强制中断所有线程然后如果发现某些线程未处于安全点恢复程序运行直到进入安全点为止。主动式中断不强制中断线程只是简单地设置一个中断标记各个线程在执行时轮询这个标记一旦发现标记被改变(出现中断标记)时那么将运行到安全点后自己中断挂起。目前所有商用虚拟机全部采用主动式中断。安全区域Saferegion安全点机制仅仅是保证了程序执行时不需要太长时间就可以进入一个安全点进行 GC 动作但是当特殊情况时比如线程休眠、线程阻塞等状态的情况下显然HotSpot不可能一直等待被阻塞或休眠的线程正常唤醒执行此时就引入了安全区的概念。安全区(Saferegion)安全区域是指在一段区域内对象引用关系等不会发生变化在此区域内任意位置开始GC都是安全的线程运行时首先标记自己进入了安全区然后在这段区域内如果线程发生了阻塞、休眠等操作HotSpot发起GC时将忽略这些处于安全区的线程。当线程再次被唤醒时首先他会检查是否完成了GC Roots枚举(或这个GC过程)如果完成了就继续执行否则将继续等待直到收到可以安全离开的Safe Region的信号为止。总结前面讲的垃圾回收器算法属于基本功要求面试者一定要熟练记忆的而后面的垃圾收集器的执行细节如果加分项如果都能融会贯通的话Offer 就离你又进一步了。【End】查看更多面试题内容请访问《Java最常见200面试题全解析》它包含的模块有Java、JVM 最常见面试题解析Spring、Spring MVC、MyBatis、Hibernate 面试题解析MySQL、Redis 面试题解析RabbitMQ、Kafka、Zookeeper 面试解析微服务 Spring Boot、Spring Cloud 面试解析扫描下面二维码付费阅读关注下方二维码订阅更多精彩内容。转发朋友圈是对我最大的支持。
http://wiki.neutronadmin.com/news/128277/

相关文章:

  • 许昌做网站公司汉狮价格深度网营销型网站建设公司怎么样
  • 网站建设乙方义务酒店网站的规划与建设方案
  • 国外ps网站wordpress音乐盒
  • 重庆网站建设优斗士深圳住房和建设局网站首页
  • 企业网站设计源代码如何查看网站的外链
  • 网站不清理缓存安阳住房与城乡建设局官方网站
  • 你的网站赚钱吗百度如何建设自己的网站
  • 免费推广网站教程国家信息网
  • 微信小程序做网站响应式网站模板的优势
  • 网站备案网站建设方案杭州网络公司网站建设
  • h5 做的网站 价格网络营销专业如何
  • 企业网站建设有名 乐云seo网站运行需求
  • 塘厦网站仿做网站根目录有哪些
  • 江苏省城乡建设局网站首页优畅 wordpress
  • 学院的网站怎么做江西雄基建设网站
  • 专业的手机网站建设公司排名专门做二手手机的网站吗
  • 网站用静态域名解析做网站不给源码吗
  • 优化推广网站怎么做最好网站使用帮助
  • 移动网站建设价格便宜有比wordpress更好的吗
  • 12306网站建设超30亿海口网站建设费用
  • 用什么软件做网站模板wordpress 广告主题
  • 微信商城开发推荐华网天下seo建设
  • 如何做做网站用typecho做的网站
  • 自己制作的网站模板以后可以修改吗网站关于我们怎么做单页面模板
  • wordpress站点logo设置020网站建设和维护费用
  • 昌平网站开发公司电话个人博客自我介绍
  • 成都网站建设前十佛山做网站业务工资
  • 网站建设怎么寻找客户wordpress修改域名文件夹
  • 在郑州网站建设hexo wordpress 主题
  • 建设网站的提成是多少玉溪市网站建设推广