Java虚拟机有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统。

Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。

Java虚拟机不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。Java技术使同一种应用可以运行在不同的平台上。Java平台可分为两部分,即Java虚拟机(Java virtual machine,JVM)和Java API类库。

java语言有一个非常重要的特点就是与平台的无关性(通俗的说就是跨平台) ,java语言在不同的平台不需要重新编译, 任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。 例如下图:
虚拟机精讲

虚拟机精讲

虚拟机精讲
虚拟机精讲
虚拟机精讲
jvm堆:
堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。

jvm栈:
栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

堆栈缓存方式:
栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放。
堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。

自动回收垃圾机制
虚拟机精讲
虚拟机精讲
虚拟机精讲

相关文章:

  • 2021-09-25
  • 2021-09-09
  • 2022-12-23
  • 2022-02-10
  • 2021-11-17
  • 2021-05-12
  • 2022-01-26
  • 2021-12-29
猜你喜欢
  • 2021-10-25
  • 2021-05-01
  • 2021-08-21
  • 2021-09-02
  • 2021-10-01
  • 2021-09-06
  • 2021-04-06
相关资源
相似解决方案