初步了解Java虚拟机(JVM)

什么是Java虚拟机?

Java虚拟机也可以说是一个虚构出来的计算机。

什么是Java
Java是一种语言
在手机上的App应用程序一般都是通过Java开发出来的
Java可以跨平台,但是在需要JVM才能进行跨平台
Java被Order公司给收购
在这里插入图片描述

Java通过安装JDK和JRE
JDK包里面默认有一个Java虚拟机(JVM)
-----------------省略安装JDK-------------------
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Java虚拟机全称:Java Virtual Machine
一个JVM就等于说是一台主机
通过我们用户自己编写Java源文件
然后把Java源文件编译成Class字节码文件
字节码文件用户看不懂,通过虚拟机进行编译并识别
JVM与Java应用程序:1对1

Java虚拟机有什么作用?

Java最主要的功能就是跨平台
那Java虚拟机为什么就能够跨平台呢?
通俗的来说没有Java虚拟机一个程序是运行不了的
就用现实生活来比喻:
虚拟机就像水一样,而一个程序就对比一条鱼
鱼没有水就活不下来,游来游去,没水,鱼怎么游?怎么活下来?

java虚拟机中有几个分区?
在这里插入图片描述

java虚拟机中分别有:

PC(程序计数器:Program Counter Register)
储存一块一小的内存空间,JVM多线程是通过线程转换并分配执行时间的方式实现的。
每个线程的PC记录了当前线程要执行的指令。

虚拟机栈(VM Stack)
虚拟机栈也简称栈
此栈中也的元素叫做栈帧(Stack Frname),线程调用Java方法时,会未每一个方法创建,
一个栈帧,是用于我们存储局部变量表、操作栈、动态链接、方法出口等信息,当每个方法
调用或完成线程后,会从虚拟机栈上出现入栈和出栈,虚拟机栈的生命周期与线程相同。

本地方法栈(Vative Method Stack)
为线程私有,功能与虚拟机栈非常相似,来存储线程调用本地方法时,本地方法的局部变量
表、操作栈等等信息。

堆(Heap)
堆区被所有的线程共享,在虚拟机启动时创建,此区是用于存放一些对象的实例(开辟的一些内容空间),几乎都是在堆区中分配的,堆区用于垃圾回收器(垃圾回收机制)管理的主要区域。

方法区(Method Area)
该区为各个线程共享,用于存储已经被虚拟机加载的类信息、常量、静态变量、即编译器编译出来的代码等数据。

Java虚拟机可以用来干什么?

Java虚拟机主要用于我们的一个程序跨平台
用于编译我们看不懂的编译过后的代码也称Class文件字节码文件
在这里插入图片描述
这个时候Java虚拟机就可以很好的识别我们的一个Class字节码文件
他可以用于多个平台中使用
但是需要在不同的平台安装不同的虚拟机即可。

Java虚拟机在哪里使用?

当我们在程序启动时就可以在使用Java虚拟机了,他通过使用Jdk的bin文件
进行执行编译

总结一下:使用我们Java虚拟机(JVM)之后,使Java很好的跨平台,可以适用于不同的系统
比如IOS系统或Win系统或Mac OS或linux系统等等其他系统,我们只需通过安装不同的虚拟机即可,解决了我们开发人员看不懂的字节码文件。

温馨小助手:希望能帮助到我的真果粒们!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值