请问一个JAVA程序运行机理!

javagoo 2002-03-10 03:07:08
我这方面的概念比较模糊,想请教大家一下!
...全文
43 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zosatapo 2002-03-10
  • 打赏
  • 举报
回复
具体的请你参阅《java虚拟机规范》第5章。

主要分成loading ,linking (这里可以细分),initializing and executing.
huanshilang 2002-03-10
  • 打赏
  • 举报
回复
去Java的老家去看看你一定能找到结果的。
javagoo 2002-03-10
  • 打赏
  • 举报
回复
还有其它的建议嘛!
javagoo 2002-03-10
  • 打赏
  • 举报
回复
谢谢大家!
zliang82 2002-03-10
  • 打赏
  • 举报
回复
看书去呐
xhh 2002-03-10
  • 打赏
  • 举报
回复
首先Java编译器把Java文件编译成为Class文件(字节码)。
这个Class文件其实是一串Java指令,等待JVM的执行。
可以把JVM想象成为CPU,把Java指令想象成汇编指令。
运行Java程序时就进入Java运行机制。
Java运行机制分为“Java装入器”、“Java验证器”、“Java解释器”。
首先Java装入器装入所有程序需要的类,并且区分本地和网络上的类,
这样做是为了安全。
然后Java验证器验证字节码,验证代码是否符合JVM规范,
是否引起操作数栈上溢或下溢,参数类型是否准确,是否有非法类型转换等,
这样做也是为了安全性,它防止了黑客的内存溢出等攻击。
最后Java解释器按照JVM规范解释执行字节码,也就像CPU一样执行指令。
如果这个JVM采取了JIT优化,那么它在第一遍执行的时候把Java指令转换
成为与本地操作系统有关的本地代码,以后如果再次执行此代码,就直接
执行转换好的本地代码,这样速度可以逼近C/C++的速度!
iamfancy 2002-03-10
  • 打赏
  • 举报
回复
Java 程序从你需要运行的类中找到 public static void main(String[] args) 函数,如果有,就从它开始运行,如果没有,就报错。
GJA106 2002-03-10
  • 打赏
  • 举报
回复
编辑java程序-->编译生成字节码(class)-->用java解释器解释运行字节码

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧