【讨论】 .NET框架和java都使用了一种托管的运行时环境,都将源代码转换为一种中间语言,然后将其编译为本地的可执行代码。

mixianger 2006-12-15 04:52:04
标题的这句话对不对?

why?
...全文
232 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mixianger 2006-12-21
  • 打赏
  • 举报
回复
谢谢楼上的回答!
.net居然需要从IL编译为汇编指令来执行啊?以前从没想过这个问题呢.
java虚拟机还是需要将字节码解释为特定的机器码?
呵呵,我不是计算机专业出身,没学过编译原理之类的东西,好多细节都理解不了.
mixianger 2006-12-20
  • 打赏
  • 举报
回复
.....
bigrongshu 2006-12-20
  • 打赏
  • 举报
回复
.Net编译好的不是汇编指令,而是IL指令,Java是字节代码

JIT 运行时.Net装载入口Assembly,CLR公共语言运行时运行代码创建主应用程序域,然后CLR提取代码从IL编译为汇编指令并执行,循环到第二部分代码。。。每部分代码都是即时编译(JIT)。代码运行中CLR监视内存使用情况并处理垃圾回收等等。

Java不同的是编译为字节代码,字节代码有一套通用的语法,可以跨平台。字节代码是解释性的。Java程序的跨平台主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的interpreter(解释器)负责将字节码文件解释成为特定的机器码进行运行。
mixianger 2006-12-18
  • 打赏
  • 举报
回复
mixianger 2006-12-16
  • 打赏
  • 举报
回复
我觉得java好象并没有把字节码编译为本地可执行代码,而是直接在虚拟机上运行的。
outh24 2006-12-15
  • 打赏
  • 举报
回复
正确吧 .net是编译成IL,java是编译成字节码
一般win32程序编译完成exe文件后,运行时是由操作系统管理的
而编译成IL-exe的文件运行时是由framework接管的
java是由虚拟机在运行时将字节码再编译为可执行代码
与java的虚拟机相似,framework主要也是做一些内存管理,应用程序域管理什么的
虽然java和.net都是平台上架平台的东西,不过M$自己的东西运行起来还是比java快一些
winner2050 2006-12-15
  • 打赏
  • 举报
回复
变成中间语言以后就在虚拟机里面运行。

azurebz 2006-12-15
  • 打赏
  • 举报
回复
哦,帮顶,学习
各人觉得是这样的
但是有点区别,偶不敢说,怕被笑话。期待高手

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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