首页 > 试题广场 >

下面关于程序编译说法正确的是()

[单选题]

下面关于程序编译说法正确的是()

  • java语言是编译型语言,会把java程序编译成二进制机器指令直接运行
  • java编译出来的目标文件与具体操作系统有关
  • java在运行时才进行翻译指令
  • java编译出来的目标文件,可以运行在任意jvm上
推荐
A:.java编译成的是字节码,再被各系统的jvm翻译成本系统可以识别的机器码,这就是java一次编程多平台应用的跨平台性 B:java源文件生成的是class文件,与系统无关 C:注意字节码和机器码不是一回事 java程序在运行时字节码才会被jvm翻译成机 器码,所以说java是解释性语言 D:注意jvm的版本,好比人穿裤子,一条裤子能被任何人穿上吗
编辑于 2018-05-06 22:37:59 回复(11)
编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码二进制)。像C/C++等都是编译型语言。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等
解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等
Java不同于一般的编译语言和直译语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写到处运行”的跨平台特性, 所以说java是一种解释型的语言
发表于 2017-03-20 15:57:23 回复(6)
应该选c吧。。d的话低版本的jvm没有办法运行高版本的java代码
发表于 2016-12-30 17:04:34 回复(11)

任意肯定不行了,坏掉的jvm就运行不了-----

发表于 2017-11-20 21:33:28 回复(11)
个人不太认同Java是解释性语言,毕竟有编译成字节码的过程。而且很多JVM虚拟机都提供了JIT,将字节码在执行时翻译成二进制,提高执行效率
发表于 2017-02-26 22:54:17 回复(1)
什么烂题
发表于 2016-12-14 23:55:49 回复(23)
c,
A:字节码文件
B:与操作系统无关
D:jvm可以有不同实现.低版本不一定能执行高版本的
编辑于 2018-04-07 18:44:15 回复(2)
java是混合型好吧,具体是编译执行还是解释执行这是根据jvm虚拟机的实现来的,在jvm调优的时候也可以手动设置语言的执行类型,说是解释型语言的真***乱说。

以HotSpot来说,他的实现默认是mixed,当一段代码反复执行到一定次数的时候jvm就会对这段代码进行编译,这样后面再运行这段代码的时候速度就会变快,以此提升效率,而用户其实还可以手动指定jvm参数来设置具体的执行方式。
发表于 2020-05-14 14:23:42 回复(0)

这题出的不好
编程语言按种类划分有:汇编语言、脚本语言、机器语言、高级语言
而高级语言里又有面向对象和面向过程,解释型和编译型
Java到底是解释型还是编译型呢?你可以说她是编译型的,因为.java不经过编译什么用都没有,你也可以说她是解释型的,因为.java编译后是解释运行在JVM上的。
如果非要分类,从概念的定义上,恐怕java应该归到解释型的语言中

发表于 2019-05-22 09:24:56 回复(0)
什么破题!
发表于 2018-04-07 19:21:21 回复(0)
java是解释性语言没错啊。这个问题不用怼牛客了吧,D jvm不是不能向上兼容吗。所以D肯定错了,
发表于 2017-09-09 22:30:06 回复(0)
java怎么能是解释型语言呢,不应该是编译型语言么,
发表于 2017-08-21 08:22:29 回复(0)
第二次了。。你想干嘛。你想干嘛。js和java有毛线关系。我们家js是多麽高大上。你怎么把我家js和java那种东西比较呢。
发表于 2017-04-14 22:20:12 回复(0)
关于java对代码的执行,JVM会先将代码进行编译成字节码文件,解释执行;在执行时,jvm会进行热点代码的统计,如果是热点代码,会通过JIT动态地编译为机器码,提高效率。
发表于 2020-02-26 10:33:52 回复(0)
JVM是分操作系统的,我们下载安装的时候就知道。所以说并不是java是跨平台语言,而是jvm有不同平台的版本,才让java跨平台的。
java是编译执行和编译后解释执行的混合型语言
发表于 2019-12-16 17:12:00 回复(0)
java编译出来的目标文件,可以运行在任意jvm上,这个要注意jvm的版本问题

发表于 2018-10-26 20:02:30 回复(0)
java不是纯粹的编译型语言或是解释型语言。java大体上可以看成是解释性语言,但运行过程中也会编译高频率运行的代码块,以提高运行效率。
发表于 2018-03-05 21:01:38 回复(0)
Java语言既是编译型语言,又是解释型语言;
或者说Java语言既不是纯粹的编译型语言,也不是纯粹的解释型语言;
它是一种特殊的语言。
Java需要经过编译步骤,生成与平台无关的字节码(.class文件),再使用Java解释器来解释执行。
发表于 2018-01-06 19:50:27 回复(0)
这道题出的不完善,javascript 不是绝对的解释性语言。并不是说浏览器会在运行时一行一行的运行代码,每段代码浏览器都会进行预编译,比如我们常见的变量提升:
function foo() {
	console.log(x);
	var x = 1;
}
foo();
比如上面这段代码我们发现浏览器输出 undefined ,如果删除 var x = 1 这一句, 就会抛出 ReferenceError 。这是因为浏览器在执行 JS 脚本的时候会先对脚本预编译,在每一个作用于当中找出声明的变量并分配内存空间,所以说这段代码实际上等同于:
function foo() {
        var x;
	console.log(x);
	x = 1;
}
foo();


发表于 2017-06-22 16:07:38 回复(2)
1.编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。 2.解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。 3.C/C++ 等都是编译型语言,而Java,C#等都是解释型语言。 4.虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言) 5.脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。JAVASCRIPT,ASP,PHP,PERL,Nuva都是脚本语言。C/C++编译、链接后,可形成独立执行的exe文件。
发表于 2017-07-13 14:13:08 回复(0)
开发JAVA程序的三个步骤: 1.编写JAVA的源程序 2.编译程序生成字节码.class文件(java是高级语言,不会直接生成机器语言) 3.通过JVM解释执行(通过jvm解释为特定的操作系统如Windows、Linux等能理解的机器码,最终JAVA程序得以执行)
发表于 2017-03-11 15:26:58 回复(2)