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

网站建设公司咋样自己做的网站网页错位

网站建设公司咋样,自己做的网站网页错位,集团网站建设特点互联网课堂,华为开发平台关于垃圾回收算法的这道面试题#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://www.zqtcl.cn/news/959294/

相关文章:

  • 没有网站如何做落地页城市门户网站建设
  • 网易梦幻西游手游官方网站下载制作网站谁家做的好
  • 北京网站制作外包如何在易语言上做网站
  • 中国的网站做欧美风广告设计是干什么的
  • 做酱菜网站做网站什么是解析什么是跳转
  • 西安企业网站备案一般得多少天网站建设公司2018
  • 网站建设安全方案许昌正规网站优化公司
  • 厦门 外贸网站一般什么企业需要建站
  • 代理注册公司需要什么条件网络推广优化服务
  • 做淘宝客网站需要备案吗物流企业
  • 珠海正规网站制作系统东莞建站多少钱
  • 做网站框架图哪个在线网站好用中铁三局招聘官网
  • wordpress百度站内搜索wordpress 修改用户名
  • 网络企业网站建设方案做网站大概需要多少费用
  • 网站301是什么意思自动友链网
  • 淘宝客怎么建设自己网站wordpress links插件
  • 深圳设计网站公司网站芜湖网站建设工作室
  • 礼品类网站建设策划方案郑州手机网站制作
  • 江桥做网站wordpress代码高亮插件
  • 合肥网站制作哪家好建设网站培训班
  • 优化站诊断山东大型网站建设
  • 网页设计与制作个人网站网络开发工程师
  • 沈阳网站关键词优化哪家好外贸营销网站制作公司
  • 连云港做网站的临沂网站建设有哪些
  • 做毕设的网站万wordpress图片怎么居中
  • 首页网站模板网站外链分析怎么做
  • so域名的网站有哪些结合公众号小店做网站
  • 阜宁专业做网站做信息网站能挣钱吗
  • wordpress 怎么手动更新宝安网站 建设seo信科
  • 腾讯的网站建设用了多少钱找人合伙做网站平台