JVM自学笔记
字节码和机器码的区别:
机器码是给cpu读取运行的,速度快,但是难懂。
字节码是一种二进制的中间码,需要JVM翻译成机器码。
JDK、JRE、JVM
JDK:包含JRE和编译器等工具
JRE:是包含运行类库和JVM
JVM: 是虚拟机,Java正是基于JVM才实现了跨平台编译
openJDK和OracleJDK的区别,简单地说就是OpenJDK是sun公司公开免费的,而OracleJDK是收购sun公司以后的收费版本,两者差别并不大。
jvm和Hostpot的关系,严格来说JVM只是一种虚拟机规范,而Hostpot才是基于这个规范产生的商用产品,也就是咱们口头上的JVM
JVM和JAVA的关系:
Java代码那编译以后通过JDK生成字节码,字节码通过JVM生成机器码
JVM的运行模式:
Server模式:启动慢,但是优化的好,执行效率更高
Client模式:启动快,优化的差一些,执行效率低一些
基本上终端是Client模式,而服务端是Server模式
JVM的架构
JVM程序执行流程
编译器和解释器的协调工作流程
java虚拟机一开始是通过解释器进行解释的执行,后来有JIT编译器是用于那些频繁调用的代码或者代码块,便于提高效率。你可以理解为提前解释好了,用的时候拿来就用。
JIT 的编译方式是动态编译,就是运行的时候进行编译, 而相对的,在事前编译就是静态编译。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话