闲扯JVM之JVM是个什么东东
JVM 什么 东东
2023-06-13 09:15:19 时间
做java开发的几乎都知道jvm这个名词,那JVM是个什么东西呢?
它是什么?
JVM全称Java Virtual Machine(Java虚拟机),是一个虚构出来的计算机,它屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码,ByteCode), 就可以在多种平台上不加修改地运行。这背后其实就是JVM把字节码翻译成具体平台上的机器指令,从而实现“一次编写,到处运行(Write Once, Run Anywhere)”。
它在哪里?
- %JAVA_HOME%\bin\java.exe
- %JAVA_HOME%\bin\javaw.exe
- %JAVA_HOME%\bin\javaws.exe
- %WINDIR%\bin\system32\java.exe 是上面这些吗?No! These are ONLY Lauchers! 它在这里:
- %JAVA_HOME%\jre\bin\client\jvm.dll
- %JAVA_HOME%\jre\bin\server\jvm.dll
它与JRE/JDK是什么关系?
从上图可以看出:
- JVM只是JRE的一部分。
- JRE(Java Runtime Environment,Java运行环境),包含了Java虚拟机、Java基础类库,是使用Java语言编写的程序运行时所需要的软件环境,是提供给想运行Java程序的用户使用的,普通用户只是运行已开发好的Java程序的话,安装JRE即可。
- JDK(Java Development Kit,Java开发工具包),Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK。作为一个Java程序员,JDK是必须安装的。
它只能运行Java语言编写的程序吗?
或许大部分程序员认为JVM仅仅是用来运行Java程序的,其实在Java发展之初,设计者就曾经考虑过让其他语言也能运行在Java虚拟机之上,在1997年发布的第一版Java虚拟机规范《The Java Virtual Machine Specification》中曾提到:
"In the future, we will consider bounded extensions to the Java virtual machine to provide better support for other languages"
当Java虚拟机发展到JDK 1.7 ~ 1.8的时候,这个设想基本实现了。时至今日,除了Java语言之外,已经有一大批语言能运行在Java虚拟机之上。这使得JVM除了能做到平台无关性之外,在语言无关性上也做的越来越好。
相关文章
- 漫画:什么是JVM的垃圾回收?
- jvm最全详解-05-JVM调优工具详解及调优实战[通俗易懂]
- JVM-内存结构「建议收藏」
- JVM垃圾回收机制(一)[通俗易懂]
- 深入理解jvm和jvm基本调优参数
- JVM:第二章:设计一个刚好在一秒堆溢出的程序
- 阿里技术专家耗时三天刷完《深入JVM虚拟机 第三版》是什么感觉
- jvm 吞吐量_jvm oom
- JVM学习笔记——垃圾回收篇
- jvm的垃圾回收算法_jvm默认的垃圾回收器
- JVM的类文件结构,深入理解JVM必须趟过去的坎
- Java知识全面总结:并发编程+JVM+设计模式+常用框架+....
- JVM:并发的可达性分析
- JVM简介详解编程语言
- JVM运行期数据域详解编程语言
- Java虚拟机(JVM)概述详解编程语言
- Linux监控JVM系统性能优化实战(linux监控jvm)
- JVM优化之逃逸分析与分配消除
- Oracle JVM 解析完美的规范(oracle jvm规范)