java跨平台怎么实现的?(一次编写到处运行)
java文件通过javac编译成class文件后,通过在不同平台的jvm(java虚拟机)生成不同平台的机器码,就能在不同平台运行。
jvm虚拟机 栈(一个线程对应一部分栈,一个方法对应栈中一部分栈帧内存区域,栈先进后出特性与调用嵌套方法先后的需求一致)
每有一个线程,jvm虚拟机就分配 一部分栈区域 给线程
每有一个方法,当前栈就会分配 一部分栈帧内存区域(在栈中) 给这个方法 存放方法中的局部变量,操作数栈,动态链接,方法出口
栈的特性先进后出,调用嵌套方法时,最里层的方法需要先结束,最外层最后结束。
栈帧中:
操作数栈:存放需要赋值给局部变量的值
动态链接:用于调用方法时,将常量池中该方法的符号引用转换为直接引用————图片
jvm虚拟机 程序计数器
和栈一样,每有一个线程,jvm虚拟机就分配 一部分程序计数器区域 给线程(每个线程的程序计数器是独立的)
用于存放代码的执行到哪的位置,当线程挂起时,能知道要从哪继续执行
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。