单项选择(2014年秋程序员软考)

以下关于解释器运行程序的叙述中,错误的是【 】

A、可以先将高级语言程序转换为字节码,再由解释器运行字节码

B、可以由解释器直接分析并执行高级语言程序代码

C、与直接运行编译后的机器码相比,通过解释器运行程序的速度更慢

D、在解释器运行程序的方式下,程序的运行效率比运行机器代码更高

答案解析

D

【解析】

解释程序也称为解释器,它可以直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;而编译程序(编译器)则首先将源程序翻译成目标语言程序,然后在计算机上运行目标程序。

解释程序在词法、语法和语义分析方面与编译程序的工作原理基本相同。一般情况下,在解释方式下运行程序时,解释程序可能需要反复扫描源程序。例如,每一次引用变量都要进行类型检査,甚至需要重新进行存储分配,从而降低了程序的运行速度。在空间上,以解释方式运行程序需要更多的内存,因为系统不但需要为用户程序分配运行空间,而且要为解释程序及其支撑系统分配空间。

讨论

对部分乐器进行建模,其类图如图所示,包括,乐器( Instrument)、管乐器(wind)、打击乐器( Percussion)、弦乐器( Stringed)、木管乐器( Woodwind)、铜管乐器( Brass)。下面是实现上述设计的Java代码,其中音乐类( Music)使用各类乐器( Instrument)进行演奏和调音等操作。enum Note{/*枚举各种音调*/ MIDDLE_C, C_SHARP, B_FLAT;//其他略}interface Instrument{/*接口,乐器*/ __(1)__;//p1ay方法接口 void adjust();// adjust方法接口}class Wind __(2)__{ public void play(Note n){System. out. println("Wind. play() "+ n);} public void adjust(){System. out. println("Wind. adjust ()");}}/*类 Percussion和 Stringed实现代码略*/class Brass __(3)__{ public void play(Note n){System. out. println("Brass. play()"+ n);} public void adjust(){System. out. println("Brass. adjust ()");}}class Woodwind extends Wind{ public void play(Note n){System. out. printin("Woodwind. play()"+ n);}}public class Music{ void tune(Instrument i){i.play(Note. MIDDLE_C);} void adjust(Instrument i){i.adjust();} void tuneAll(__(4)__ e){ for(Instrument i : e){ adjust(i); tune (i); } } public static void main(String[] args){ Music music=__(5)__ Music(); Instrument[] orchestra =I new Wind(), new Woodwind ()}; music. tuneAll(orchestra); }}Wind. adjust ()Wind. play () MIDDLE_CWind. adjust()Woodwind. play() MIDDLE_C

子类在原有父类接口的前提下,用适合于自己要求的实现去置换父类中的相应实现称为【 】。

IP地址131.153.12.71是一个【 】类IP地址。

简述Unix/Linux系统中使用socket库编写服务器端程序的流程。

下列Java语句从指定网址读取html文件,在下划线处应填上的选项是【 】。Reader in=new____(new URL(urlString).openStrream());

URL是的____________________缩写。

可以使当前同级线程重新获得运行机会的方法是【 】。

多线程实现同步的方法有两种,分别是____________、____________。

在Java语言中,被称为内存分配的运算符是【 】。

下列关键字中可以表示常量的是【 】。