zoukankan      html  css  js  c++  java
  • (一)JVM快速回顾总结

    1,JVM内存结构(JVM体系概述,java8后的JVM)

     2,GC的作用域(方法区和线程堆)

    3,常见的垃圾回收算法

    (1)引用计数 循环引用问题

           

           

       (1) 那些对象可以作为GC_Root

    • 虚拟机栈(栈帧中的局部变量区)中的对象;
    • 本地方法栈中JNI(Native)方法引用的对象;
    • 方法区中常量引用的对象;
    • 方法区中类静态属性应用的对象;

     (2)JVM参数类型

    •  标配参数 (1) java -version   (2) java  -help   (3)   java -showversion
    • X参数(了解)[ -Xint 解释执行  -Xcomp第一次使用就编译成本低代码  -Xmixed 混合模式]
    • XX参数  
    •     1,Boolean类型
    •     2,KV设值类型
    •     3,jinfo举例,如何查看当前运行程序的配置       

      

    (2)复制

        (1)MinorGC的过程(复制->清空->互换) (复制算法)

        1,eden、SurvivorFrom 复制到SurvivorTo。年龄 +1  

          首先,当Eden区满的时候会触发第一次GC,把还活着的对象拷贝到SurvivorFrom区,当Eden区再次触发GC的时候会扫描Eden区和From区,对这两个区域进行垃圾回收,经过这次垃圾回收后还活着的对象直接复制到To区域(如果有对象的年龄已经达到了老年的标准,则复制到老年代区),同时把这些对象的年龄 +1;

        2,清空Eden区和SurvivorFrom区

          然后,清空Eden区和SurvivorFrom区的对象,也即复制之后有交换,谁空谁是To区

        3 ,SurvivorTo和SurvivorFrom互换

          最后,SurvivorTo和SurvivorFrom互换,原SurvivorTo成为下一次GC时的SurvivorFrom区,部分对象会在From和To区域中复制来复制去,如此交换15次,(由JVM参数MaxTenuringThreshold决定,

    这个参数默认是15),最终如果还是存活,就存入老年代。

     (3)标记清楚(节约了内存空间,但产生了内存碎片)

     (4)标记整理(标记压缩)(没有了内存碎片,需要移动对象的成本,耗时间)

    复习笔记:

        (1)死锁:是指两个或多个事务在同一资源上相互占用,并请求加锁时,而导致恶性循环的现象,当多个事务以不同顺序试图加锁同一资源时,就会产生死锁,

           (任何时间,多个事务同时加锁一个资源,一定产生死锁)。

        (2)慢查询日志:查看是否是否从查询缓存中取值,是否进行了全表扫描,是否进行了没使用索引的连接,是否使用了临时表,如果是,那么是否使用了磁盘上的临时表,

        是否使用了文件排序,如果是那么他是否在磁盘上排序,排序的时候使用了多少次排序合并。

          

    Java半颗糖
  • 相关阅读:
    cesium【02-小部件】
    cesium【01-初始化】
    【01】webpack4 快速上手
    【11】openlayers 地图交互
    【10】openlayers 视图view
    【09】openlayers 图片图层
    【08】openlayers 热力图层
    【07】openlayers 矢量图层
    测试从业人员常用的数据库技能整理
    基于web网站项目的性能测试结果分析
  • 原文地址:https://www.cnblogs.com/2019wxw/p/11729819.html
Copyright © 2011-2022 走看看