写信网 > 家庭百科 > java怎样运行

java怎样运行

时间:06-19    来源:写信网

大家好,给大家分享一下。很多人还不知道java是怎么工作的。下面详细解释一下。现在让我们来看看!

JDK的构成

JDK

JDK: JDK是一个Java开发工具包,是Sun公司为Java开发人员开发的产品。JDK包含jre(JDK的安装目录下有一个名为JRE的目录,包含bin和lib两个文件夹,其中bin是jvm,lib是jvm需要的类库,jvm和lib统称为JRE),以及一堆Java工具(javac/java/jdb等)。).)和基于Java的类库(即Java API包含rt.jar)。 Java运行时环境(JRE) 是运行用Java语言编写的程序必不可少的运行环境。Java开发人员也可以通过它将他们的程序分发给用户。JRE包括Java虚拟机(JVM)、运行时类库和Java应用启动器,是运行Java程序必不可少的组件。 JVM (java虚拟机):就是我们常说的java虚拟机,是整个java跨平台实现的核心。所有的java程序都会被编译成类文件,可以在虚拟机上执行。JVM架构

JVM是运行在操作系统上的一个软件。

JVM架构

JVM的组成:

加载子系统类加载器运行时数据区JVM内存模型执行引擎为什么Java要在虚拟机中运行

简单来说,Java作为一种高级编程语言,语法复杂,抽象程度高,直接在硬件上运行这种复杂的程序是不现实的。于是,Java的设计者设计了一个面向Java语言特点的虚拟机,Java程序被编译器转换成虚拟机可以识别的指令序列(JAVA字节码)。Java字节码会被翻译成虚拟机可以识别的机器码,这也实现了Java的跨平台(相同的代码可以运行在不同操作系统的JVM中)。

虚拟机的第二个好处是它带来了一个托管的环境,可以替代我们代码中冗余和容易出错的部分,比如自动内存管理,垃圾回收,动态监控比如数组越界,动态类型,安全权限等等。

JVM如何运行Java字节码?

要执行Java代码,需要将编译好的类文件加载到JVM虚拟机中。加载的Java类将存储在方法区域。运行时,虚拟机执行方法区的代码;Java虚拟机在内存中划分堆和栈来存储运行时数据。JVM会把栈细分为Java方法的Java方法栈、本地方法的本地方法栈(C语言写的原生方法)和存储每个线程执行位置的PC寄存器。

JVM加载字节码

在运行过程中,每当进入一个Java方法,Java虚拟机就会在当前线程的Java方法栈中生成一个栈帧,用来存储局部变量和字节码操作数。这个栈帧的大小是预先计算好的,Java虚拟机并不要求栈帧在内存空中持续分布。在退出当前执行的方法时,JVM会弹出当前线程的当前堆栈帧并丢弃,无论是正常返回还是异常返回。

当然,Java字节码不能直接在硬件上执行,所以JVM需要把字节码翻译成机器码。

在HotSpot中,上述翻译过程有两种形式:第一种是解释执行,即将字节码逐个翻译成机器码并执行;第二种是实时编译(JIT),即一个方法中包含的所有字节码在执行前都被编译成机器码。

JVM执行字节码

执行:不需要等待编译。在运行的过程中,需要的时候编译然后马上编译:JVM把字节码编译成机器码然后执行,所以在实际运行中速度更快。HotSpot默认采用混合模式,结合了解释执行和即时编译的优点。它首先解释执行字节码,然后用方法实时编译重复的热代码。

以上解释了java的工作原理。这篇文章已经分享到这里了。希望能帮到你。如果有任何错误,请联系边肖进行更正。

标签: Java运行原理 JDK构成 JRE组件 JVM架构 Java字节码

java怎样运行 内容由写信网整理,转载请保留地址: http://m.woxiexin.com/baike/qaZA5XspYdhNBpoFTcAcrmzV.html

  • 最新阅读

PC百科   java怎样运行

0.040490s