zoukankan      html  css  js  c++  java
  • 你必须掌握的关于JVM知识点

    对本文所持态度

    抓住主要矛盾,抓住重点学习,然后从这些点展开学。

    不管是面试别人,还是参加面试。都可以有收获。

    JDK体系结构与JVM架构解析

    jdk

    jre

    javac

    jvm

    Java是怎么实现跨平台的

    不同平台实现的JVM,都遵循相同的Java语言规范、Java虚拟机规范。

    JVM:从软件层面屏蔽不同操作系统在底层硬件与指令上的区别。

    实现跨平台的关键就是JVM。

    JVM内存

    运行时数据区有哪些内容?

    线程私有:虚拟机栈、本地方法栈、程序计数器

    线程共享:堆、方法区

    Java内存模型

    image-20200614235044322

    image-20200614235401973

    image-20200614235459979

    引用自https://www.processon.com/view/5ea7a1b9e401fd21c196eb17?fromnew=1

    JVM运行时数据区

    image-20200614233701288

    引用自https://www.processon.com/view/5e9064d80791294229cc2d3b?fromnew=1

    对象初始化过程及GC过程

    image-20200614233404526

    image-20200614230220995

    如何查看字节码

    javap命令

    javap -c Main.class

    如何分析字节码

    参考JVM指令手册

    程序计数器

    当前线程正在执行的字节码的地址

    栈桢

    局部变量表

    • 八大基本数据类型

    • 对象引用

    • returnAddress

    操作数栈

    动态链接

    方法出口

    堆内存解析

    垃圾回收机制解析

    image-20200615000124204

    image-20200615000152434

    image-20200615000208328

    垃圾回收器

    image-20200615000306726

    image-20200615000326192

    image-20200615000705856

    引用自https://www.processon.com/view/59a52df0e4b0920e4be264b8?fromnew=1#map

    minor gc和full gc都会触发STW

    亿级流量电商系统JVM调优实战

    JVM调优目的

    减少STW,减少GC次数,减少GC时间

    为什么要设计STW?

    为了让可达性分析结果更准确,不可以在分析过程中,对象引用关系还在不断变化。

  • 相关阅读:
    sklearn各种分类器简单使用
    使用Pandas加载数据
    使用Sklearn-train_test_split 划分数据集
    KNN_python
    ga算法
    粒子群算法
    bp神经网络的实现C++
    理解RNN
    感知器的实现C++
    线性神经网络的实现C++
  • 原文地址:https://www.cnblogs.com/xinrong2019/p/13127601.html
Copyright © 2011-2022 走看看