java编译成机器码
1. java能不能像c语言不通过JVM虚拟机直接编译成二进制机器码,让计算机直接运行
很少用java,不熟悉,但觉得应该不行吧,java是解释性语言,即使有一次编译的机制,但也是即时编译的。要是像你说的这样,那也不可能跨平台运行了
2. Java语言源文件编译生成的字节码和机器码有什么区别
字节码要根据不同的操作系统来转换用机器码后再在本操作系统上运行。
3. java编译后产生 字节码,还是 机器码能不能简单解释一下
java虚拟机是可运行java字节码的假象计算机 java的跨平台性也是相对与其他编程语言而言的
先介绍一下c语言的编译过程吧
先是C语言源程序也就是。c的文件
经过C编译程序编译后生成windows可执行文件exe文件
然后在windows中执行。。
再介绍java的编译过程
先是java源程序 扩展名为。java的文件
由java编译程序将java字节码文件 就是class文件
然后在java虚拟机中执行。。
4. java程序编译后会不会产生machine code
不会,只会生成字节码文件。
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。
Java还剔除了C++的操作符过载和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。
Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
(4)java编译成机器码扩展阅读:
Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流网络连接,所以用户可以产生分布式的客户机和服务器。网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。
在一个解释性的环境中,程序开发的标准“链接”阶段大大消失了。如果说Java还有一个链接阶段,它只是把新类装进环境的过程,它是增量式的、轻量级的过程。
因此,Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。
5. java源文件需要先解释成字节码文件在编译成相应的机器码并运行对吗
应该不需要再编译的过程。
6. java程序编译后会产生字节码还是机器码
Java编译后是字节码,C/C++以前全都是是机器码。
电脑只能运行机器码。Java在运行的时候把字节码变成机器码。
C/C++在编译的时候直接编译成机器码。
不过现在微软的Visual Studio C++ 2005以后的C++也可以编译成字节码,用CLR运行是转换成机器码(和Java差不多)。
7. java源程序编译后生成的源文件是以什么编码的,是计算机cpu得机器码还是其他编码
这个叫字节码,是JVM虚拟机能够解释运行的编码
8. java编译器将源文件编译生成的字节码是机器码么
不是,中间码。
9. java语言为什么使用的java虚拟机而不是直接翻译成机器代码(即和C语言一样)
目前常用的系统或者平台其实没有几个,这种跨平台性,在我看来真的是浪费了。C/C++可以高效率运行是因为直接编译成机器码,按说Java语法的也可以的啊,只是它选择了虚拟机来搞快平台,用喜欢的语法,翻译成机器码,岂不是和C/C++一样的效率了。