zoukankan      html  css  js  c++  java
  • JVM学习笔记(一、学习目的)

    目录:

    • 什么是JVM
    • 为什么要学习JVM
    • 笔记整理

    什么是JVM

    摘自:https://blog.csdn.net/qq_41701956/article/details/80020103

    Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。因此在运行时,Java源程序需要通过编译器编译成为.class文件。

    众所周知java.exe是java class文件的执行程序,但实际上java.exe程序只是一个执行的外壳它会装载jvm.dll(windows下,下皆以windows平台为例,linux下和solaris下其实类似,为:libjvm.so),这个动态连接库才是java虚拟机的实际操作处理所在。

    JVM是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支持与操作系统无关,实现跨平台。所以,JAVA虚拟机JVM是属于JRE的,而现在我们安装JDK时也附带安装了JRE(当然也可以单独安装JRE)。

    为什么要学习JVM

    摘自:https://www.cnblogs.com/chanshuyi/p/jvm_serial_00_why_learn_jvm.html

    1、学习虚拟机是为线上排查问题打下基础

    • 我们知道我们一个Java应用部署在线上机器上,肯定时不时会出现问题。
    • 除去网络、系统本身问题,很多时候 Java 应用出现问题,就是Java虚拟机的内存出现了问题
    • 要么是内存溢出了,要么是GC频繁导致响应慢等等。

    2、那如何解决这些问题呢?

    • 首先,你必须学会看懂日志吧。
    • 那么你就必须要看得懂GC日志,这是 Java 虚拟机内容的一部分。
    • 你看懂了GC日志,那么你就得明白什么是年轻代、老年代、永久代、元数据区等,这些就是Java虚拟机的内存模型。
    • 你懂了Java虚拟机的内存模型,那你就得知道Java虚拟机是如何进行垃圾回收的,它们使用的垃圾回收算法是怎样的,它们有何优缺点。接下来就是各种垃圾回收器的特性。

    你看,这一切东西都是相关联的。你想要解决线上的Java应用崩溃问题,那么你就必须学会GC日志。要看懂GC日志,就必须学习Java虚拟机内存模型。要看懂Java虚拟机内存模型,你就要学会垃圾回收机制等等。

    笔记整理

    1. Class文件结构
    2. 类加载机制
    3. 类加载器
    4. 运行时数据区
    5. 字节码执行引擎
    6. GC基础知识
    7. GC算法
    8. GC回收器
    9. GC回收机制
    10. JDK分析工具
  • 相关阅读:
    virtualenvwrapper的安装及问题解决
    eclipse添加插件、删除插件 示例: eclipse marketplace
    怎么修改tomcat端口
    Eclipse配置maven环境
    如何查看某个端口被谁占用
    selenium清空默认文字
    Git项目删除文件
    selenium使用chrome抓取自动消失弹框的方法
    Python字符串转为字典方法大全
    接口测试学习
  • 原文地址:https://www.cnblogs.com/bzfsdr/p/13581042.html
Copyright © 2011-2022 走看看