• java基础之jvm4


    十、面试题

    4.用户线程与内存线程:

    1.1 多对一:不需要切换,线程创建、调度、同步非常快;但是如果其中一个用户线程阻塞会造成其他线程无法执行,且无法像内核线程一样实现较完整的调度、优先级;
    1.2 一对一:java的jvm几乎把所有对线程的操作都交给了系统内核操作,线程真正启动顺序不一定是按我们启动的顺序,会引起用户态和内核态的频繁切换;如果系统出现大量线程,回家降低系统性能。

    5.运行时数据区:

    在这里插入图片描述

    6.内存回收:

    在这里插入图片描述

    7.内存溢出:

    1.1 栈溢出


    1.2 堆溢出
    在这里插入图片描述
    》第8行设置会在堆溢出会导出Damping日志

    1.3 方法区溢出
    1.4 本机直接内存溢出

    8.内存泄漏:

    1.1 不使用的内存,却没有被释放;
    1.2 每一次请求进来或者每一次操作处理都分配了内存,却有部分不能回收(或未释放),随着请求越来越多,内存泄漏就会越来越严重,必然造成内存溢出。
    1.3 内存泄漏一般是资源管理问题或者程序bug,内存溢出则是内存空间不足和内存泄漏的最终结果。

    9.hotspot对象头包含哪些部分:

    在这里插入图片描述

    10.根据类分析对象的内存占用:

    在这里插入图片描述

    11.jvm启动参数:

    高效记忆:jvm配置参数

    (1)这个星期天上午,衣物堆内存(堆内存)在很多需要使用算法机洗(GC算法)的衣服,而且因为衣服太多了,所以需要几台洗衣机并行机洗(GC并行线程数)。
    (2)中午终于洗完衣服了衣服,觉得很有成就感,于是我写下了巨大的日志(GC日志)并保存在日志文件(GC日志文件)夹中。
    (3)但是日志文件超过了原数据区域的最大值(元数据区的最大值),于是我压缩了单个日志形成文件占用大小(单个线程栈的大小),并设置之后如果内存溢出自动转存(堆内存溢出自动进行dump)云端。

    在这里插入图片描述

    12.堆空间最大值设置:

    13.G1垃圾收集器特点:

    1.空间整合:哪块垃圾最多优先清理
    在这里插入图片描述
    2.多线程+并发+可预测停顿
    在这里插入图片描述

    14.排查OOM的方法:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    14.jvm的相关命令工具:

    高效记忆:jvm命令

    (1)先用jps列出进程,再用jstat打印状态,然后再使用jinfo查看信息,
    (2)其次再用jmap堆转存快照,以及用jstack转存当前线程快照,最后用jhat查看堆内存快照。
    (3)实战cpu飙升:
    a.先用top后用shift+p找到占用CPU最高的进程,再用top -p 进程号后用H找到占用cpu最高的线程,
    b.再执行jstack 线程号输出线程信息,同时根据线程号转成的16进制找到对应的堆信息,然后再找到对应的代码

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    15.java8默认垃圾收集器:

    在这里插入图片描述

    16.并行垃圾收集器:

    在这里插入图片描述

    17.swt:

    在这里插入图片描述
    安全点:方法调用、循环跳转、异常跳转;设置标志位,并不断轮询,主动停止。
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    17.cpu使用率飙升,怎么排查?

    先通过top命令找到cpu使用率高的线程;top -p 进程号;该界面输入H查找最高cpu的线程;执行jstack 进程号做dump输出线程信息; 同时根据线程的16进制找到对应的堆信息,然后再找出对应的代码
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    6、最后根据线程信息定位到具体代码

    18.垃圾回收器的三色标记:

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    19.类加载、类加载器:

    在这里插入图片描述
    在这里插入图片描述

    上一篇跳转—Java基础之jvm3


    参考链接1


    随心所往,看见未来。Follow your heart,see night!


    欢迎点赞、关注、留言,一起学习、交流!

  • 相关阅读:
    ctfshow unserialize
    PHPadmin写shell的方法
    1785. 构成特定和需要添加的最少元素
    经典ctf ping题目详解 青少年CTF-WEB-PingMe02
    Python MongoDB
    Android Kotlin 协程初探 | 京东物流技术团队
    使用时间序列数据预测《Apex英雄》的玩家活跃数据
    多进程间通信学习之无名管道
    python re 匹配所有字段名称相同的值
    Linux 安全 - Capabilities机制
  • 原文地址:https://blog.csdn.net/qq_45738250/article/details/126376573