Java虚拟机原理

zlclovechw 2009-07-27 01:30:42
Java虚拟机Java编译器上编译后生成的class是字节码,到了具体的操作系统上Java虚拟机的Java解释器负责将字节码解释成特定平台的机器码,
这就是Java的平台无关性?
Java虚拟机是依赖于操作系统的?每运行一个Java程序会增加一个 JVM 的实例,然后JVM是运行在操作系统上的,他分享的是操作给它分配的一块内存,只是在那一块分配的内存上进行内存管理?然后Java虚拟机是没有文件管理的,它也是共享的操作系统的文件管理吗?
我感觉Java虚拟机就几十M ,但是他的界面设计那些都可以赶上Windows ,我猜想它是在虚拟机层调用每一个操作系统的API实现的?但是的话根据资料显示,它只是上面所说的方法实现的,很奇怪。

像c++ 编译器,它编译成的exe 文件应该不是 字节码,好像是一个一个的函数调用,但是具体是什么我也不清楚。然后通过一个一个的函数调用,调用相应平台的操作系统的API? 然后操作系统再将 具体的API调用 转换成具体的机器指令? 这就是平台有关?

以前都没怎么注意这些概念,现在在关注GUI了,只是很多不明白的,开始的时候学的C++,用的是Windows,感觉整个机器都是它的,但是现在学着Java,不知道到底是怎么回事情了。点击窗口,到底消息是传给Windows还是Java平台呢。还是...?

大哥们,最近才上的CSDN,分数不多。。这些分数差不多是我的一半了,,谢谢大侠们帮助~~(希望大家能帮我解释下打问号的地方)
感激不尽!!

...全文
194 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlclovechw 2009-07-27
  • 打赏
  • 举报
回复
fly 能和我说说Windows应用程序和 Windows这个操作系统的关系吗? 不是很清楚
flyxxxxx 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zlclovechw 的回复:]
exe,dll他为什么也依赖于平台呢?如果换一个平台就不能执行了,机器直接运行的是不是平台无关的吗?不是很明白,还想明白点。。
[/Quote]
机器直接运行的是平台相关,不是平台无关。
临碣 2009-07-27
  • 打赏
  • 举报
回复
1,是
2,是
3,是
4,不明白。或者说java有文件管理,定义了文件操作的各种功能接口,比如读、写,然后在不同操作系统调用操作系统功能实现。
5,是
6,exe的?参考汇编看看吧
7,系统的时间给操作系统,操作系统交给jvm进程,也就是java虚拟机。
  • 打赏
  • 举报
回复
Java虚拟机不依赖操作系统

zlclovechw 2009-07-27
  • 打赏
  • 举报
回复
exe,dll他为什么也依赖于平台呢?如果换一个平台就不能执行了,机器直接运行的是不是平台无关的吗?不是很明白,还想明白点。。
zlclovechw 2009-07-27
  • 打赏
  • 举报
回复
我把问题总结了下。谢谢大家了啊
1.Java虚拟机Java编译器上编译后生成的class是字节码,到了具体的操作系统上Java虚拟机的Java解释器负责将 字节码解释成特定平台的机器码, 这就是Java的平台无关性吗
2.Java虚拟机是依赖于操作系统的?
3.每运行一个Java程序会增加一个 JVM 的实例,然后JVM是运行在操作系统上的,他分享的是操作给它分配的一块内存,只是在那一块分配的内存上进行内存管理吗?
4.然后Java虚拟机是没有文件管理的,它也是共享的操作系统的文件管理吗?
5.我感觉Java虚拟机就几十M ,但是他的界面设计那些都可以赶上Windows ,它是在虚拟机底层调用每一个操作系统的API实现的吗?
6.exe文件的执行流程?
7.用Java程序编写的窗口,点击窗口,到底消息是传给Windows还是Java平台呢。还是...?
flyxxxxx 2009-07-27
  • 打赏
  • 举报
回复
象文件、线程创建这些是和操作系统有关的,Java是通过JNI调用操作系统的功能
还有些功能与操作系统无关(如内存分配),也是通过JNI实现的。
具体哪些是JNI实现的,这可以去看java的源代码,里面的那些navite方法通常都是用c++实现的

像c++ 编译器编译的exe、dll都是机器可直接运行的代码。而Java中的字节码要通过虚拟机来执行。

62,614

社区成员

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

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