JVM之一-总体框架

本文详细探讨了JVM与JRE的关系、JVM的生命周期,以及JVM的数据类型。JVM通过调用main方法启动Java程序,当所有非守护线程结束时,虚拟机退出。JVM数据类型包括基本数据类型和引用类型,如int、float、object等。此外,文章还介绍了JVM的架构,包括方法区、Java栈和执行引擎,强调了每个线程有自己的栈和指令寄存器,而方法区和堆是共享的。
摘要由CSDN通过智能技术生成

JRE与JVM的关系和区别:

The JRE package is intended for distribution with applications. It does not contain the tools.jar file that has the compiler and other command line tools. The reason Sun makes the distinction is to give developers a more compact set of files to distribute with a product.

Also, JVM is the more generic name which can apply to any program which obeys the Java Virtual Machine Specification - whether it's made by Sun, IBM,Microsoft, or whoever.

JRE on the other hand is the name for Sun's implementation of a JVM.


JVM的生命周期

JVM通过调用某个初始类的publicstatic void main(String[] args)方法来运行一个Java程序。

JVM内部有两种线程:守护线程和非守护线程,守护线程通常是由虚拟机自己使用的,比如垃圾回收线程。main()方法开始的线程,是非守护线程。

只要还有任何非守护线程在运行,Java程序就会继续运行,虚拟机依然存活。

所有非守护线程都终止时,虚拟机实例将自动退出。

若安全管理器允许,程序自身也可调用Runtime类或System类的exit()方法退出,从而终结虚拟机实例。

JVM的数据类型



JVM对数据类型的内部格式进行了严格规定,使得各种JVM的实现对数据的解释是相同的,从而保证了Java的与平台无关性和可移植性。 

JVM支持基本数据类型和引用数据类型,

其中基本数据类型如下:

byte          1字节有符号整数

char         2字节无符号Unicode字符

short        2字节有符号整数

int             4字节有符号整数

long          8字节有符号整数

float          4字节IEEE754单精度浮点数

double     8字节IEEE754双精度浮点数

Java的类型检查都是在编译时完成的,基本数据类型的数据在执行时不需要用硬件标记,操作这些基本数据类型的字节码(指令)本身就已经指出了操作数的数据类型,例如iadd、ladd、fadd和dadd。

JVM没有给boolean类型设置单独的指令。boolean型的数据是由integer指令来处理的,boolean型的数组则是用byte数组来处理的。


JVM支持的引用数据类型包括:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值