码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Java】JVM学习


    目录

    Java虚拟机:

    JVM位置:

    JVM架构:(要能画出来)

    JVM 生命周期:

    类加载器:

    线程&程序计数器:

    虚拟机栈学习:

    堆学习:

    方法区学习:

    对象的实例化:

    垃圾回收:



    Java虚拟机:

    1、Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成。

    2、JVM平台的各种语言可以共享Java虚拟机带来的跨平台性、优秀的垃圾回收器,以及可靠的即时编译器。

    3、Java技术的核心就是Java虚拟机(JVM,Java Virtual Machine),因为所有的Java程序都运行在Java虚拟机内部。

    作用:

    Java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令执行。

    每一条Java指令,Java虚拟机规范中都有详细定义,如怎么取操作数,怎么处理操作数,处理结果放在哪里。

    特点:

    1、一次编译,到处运行

    2、自动内存管理

    3、自动垃圾回收功能 GC

    JVM位置:

    JVM是运行在操作系统之上的,它与硬件没有直接的交互

    JDK=JRE+Java编译工具   JRE=JVM+Java核心类库

    JDK:JAVA开发工具包(JAVA Development KIT) 开发的最小单位

    JRE:JAVA运行时环境(JAVA runtime environment) 运行的最小单位

    JVM:JAVA虚拟机(JAVA virtual machine) 负责加载并运行.class字节码文件

    (ClassLoader是JVM的类加载器,用于把.class字节码文件加载进虚拟机中)

    JVM架构:(要能画出来)

    JVM整体结构:

    1、 HotSpot VM是目前市面上高性能虚拟机的代表作之一。

    2、它采用解释器与即时编译器并存的架构。

    3、在今天,Java程序的运行性能早已脱胎换骨,已经达到了可以和C/C++程序一较高下的地步。

    JVM 生命周期:

    虚拟机的启动:

    Java虚拟机的启动是通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的。

    虚拟机的退出:

    有如下的几种情况:

    1. 程序正常执行结束

    2. 程序在执行过程中遇到了异常或错误而异常终止

    3. 由于操作系统用现错误而导致Java虚拟机进程终止

    4. 某线程调用Runtime类或System类的exit()方法,或Runtime类的halt()方法,并且Java安全管理器也允许这次exit()或halt()操作。

    5. 除此之外,JNI(Java Native Interface)规范描述了用JNI Invocation API来加载或卸载 Java虚拟机时,Java虚拟机的退出情况。

    类加载器:

    【Java】类加载器_多糖橘橘子的博客-CSDN博客

    线程&程序计数器:

    【Java】线程&程序计数器_多糖橘橘子的博客-CSDN博客

    虚拟机栈学习:

    【Java】虚拟机栈学习_多糖橘橘子的博客-CSDN博客

    堆学习:

    【Java】堆学习_多糖橘橘子的博客-CSDN博客

    方法区学习:

    【Java】方法区学习_多糖橘橘子的博客-CSDN博客

    对象的实例化:

    【Java】对象的实例化_多糖橘橘子的博客-CSDN博客

    垃圾回收:

    【Java】垃圾回收_多糖橘橘子的博客-CSDN博客

  • 相关阅读:
    设计模式:适配器模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
    HIL 测试
    java计算机毕业设计计算机网络精品课程网站源码+mysql数据库+系统+lw文档+部署
    为什么要学C语言及C语言存在的意义
    【Vue】实现商品列表的无限加载
    可视化大屏的终极解决方案居然这么简单,autofit.js一行全搞定!
    opencv c++ 图像梯度、边缘、锐化
    北京多域名通配符SSL证书能保护几个域名
    获取APP的MD5,公钥私钥,包名等信息
    wayland(xdg_wm_base) + egl + opengles 光照模型实例(十五)
  • 原文地址:https://blog.csdn.net/X_xiaojuzi/article/details/126237291
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号