java复习题-试题.pdf
实用文档1、以下关于 java 语言特点描述错误的选项是A.Java 语言不支持指针B.Java 具有自动垃圾回收的机制C.Java 只能运行在 Window和 Linux 平台D.Java 允许多个线程同时执行2 以下关于 JDK 的说法中,错误的选项是?A.JDK 是 Java 开发工具包的简称B.JDK 包括 Java 编译器、Java 文档生成工具、Java 打包工具等C.安装 JDK 后,还需要单独安装JRED.JDK 是整个 Java 的核心答案:C解析:SUN 公司提供了一套Java 开发环境,简称 JDK(Java Development Kit),它是整个 Java的核心,其中包括 Java 编译器、Java 运行工具、Java 文档生成工具、Java 打包工具等。JDK工具中自带了一个 JRE 工具,也就是说开发环境中包含运行环境,这样一来,开发人员只需要在计算机上安装JDK 即可,不需要专门安装JRE 工具了。3 下面关于 path 环境变量的说法中,错误的选项是?A.path 环境变量是系统环境变量中的一种,它用于保存一系列的路径,每个路径之间以分号分隔B.在命令行窗口输入“set path命令,可以查看当前系统的path 环境变量C.在命令窗口对环境变量进行的任何修改只对当前窗口有效,一旦关闭窗口,所有的设置都会被取消D.配置系统环境变量时以英文半角逗号(,)分隔每一个路径答案:D解析:配置系统环境变量时时以英文半角分号;分隔每一个路径的。4 安装好 JDK 后,在其 bin 目录下有许多 exe 可执行文件,其中 java.exe 命令的作用是以下哪一种A.Java 文档制作工具 B.Java 解释器 C.Java 编译器 D.Java 启动器答案:B1 以下选项中,哪一个是单行注释的符号?A.B./C./D.答案:B 解析:/双斜杠表示注释单行代码2 以下常量中,属于整型常量的是?A.198B.2e3fC.trueD.null答案:A解析:2e3f 属于浮点数常量,true 属于布尔常量,null 属于 null 常量3 以下选项中,哪个是程序的运行结果class Testpublic static void main(String args)int a=3;int b=6;System.out.print(a=b);System.out.print(a=b);A.false false true falseB.false false true trueC.false true true falseD.true false false true答案:C 解析:3=6错,3=6错4 假设 x=6,y=5 那么表达式 int max=xy?x:y 的结果为.实用文档A.6B.5C.trueD.false答案:A解析:三元表达式语法结构:判断条件?表达式 1:表达式 2 当判断条件成立时,运算结果为表达式 1 的值,否那么结果为表达式2 的值5 请阅读下面的程序片段boolean b=true;if(b=false)System.out.println(a);else if(b)System.out.println(b);else if(!b)System.out.println(c);else System.out.println(d);程序的执行结果是A.aB.bC.cD.d答案:C解析:条件语句的值为 false,所以值为 false 的语句才可以输出,这里用到了逻辑运算符!非即!true 的值为 false,因此输出结果是 c6 请阅读下面的程序public class SwitchDemo3 public static void main(String args)char c=B;switch case A:System.out.println(“优);break;case B:System.out.println(“良);break;case C:System.out.println(“差);break;以下选项中,哪一个才是程序的运行结果A.优B.良C.差D.编译失败答案:B解析:char c=B与 case B相匹配,因此输出结果为“良7 请阅读下面的程序Public class Test public static void main(String args)int a=0;int b=0;for(int i=1;i=0)b+;System.out.println(a=+a+,b=+b);以下选项中,哪一个是正确的运行结果A.a=8,b=-2B.a=-2,b=8C.a=3,b=0D.a=0,b=3答案:B 解析:此题中有两个循环语句,分别是外层循环的for 语句和内层循环的 while 语句,首先程序会执行 for 循环中的语句,并执行循环体中的表达式a=i%2,计算出 a 的值,然后在进入 while 循环计算 b 的值,循环往复直到外层循环条件i5 为止8 阅读下面的程序public class Test public static void main(String args)for(int x=0;x=3;x+)continue;System.out.print(x%2);运行结果正确的选项是A.跳出循环,无输出B.0121C.01D.0123答案:A 解析:continue 语句的作用是终止本次循环,因此 contine 后的代码永远不会被执行,都是无效代码9关键字用于包的声明答案:package 解析:10【】关键字用于引入包答案:import11 假设 x=2,那么表达式(x+)3 的值是【】答案:012 假设 int a=2;a+=3;执行后,变量 a 的值为【】答案:513 方法重载的条件是:方法名相同,【】不相同答案:参数列表解析:方法的重载与返回值类型无关,它只有两个条件,一是方法名相同,二是参数列表 参数个数或参数类型不相同14 定义一个方法时,要有访问修改符、返回值类型、方法名、【】答案:参数列表解析:方法的定义比拟严格,必须要有访问修饰符、返回值类型、方法名称、参数列表参数类型、参数名称“隐藏对象的属性和实现细节,仅对外提供公有的方法描述的是面向对象的哪个特征A.封装B.继承C.多态D.以上都不是答案:A 解析:封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。2 以下选项中,不属于面向对象特征的是。A.继承性B.封装性C.跨平台性D.多态性答案:C 解析:面向对象有三种特性,分别是封装性、继承性和多态性。跨平台性是 Java.实用文档语言的特点,而不是面向对象的特征。3 请阅读下面的代码class Aint x;static int y;void fac(String s)System.out.println(“字符串:+s);以下选项中描述正确的选项是A.x,y 和 s 都是成员变量B.x 是实例变量,y 是类变量,s 是局部变量C.x 和 y 是实例变量,s 是参数D.x,y 和 s 都是实例变量答案:B 解析:在方法中声明的 s 是局部变量,使用 static 关键字修饰的 y 是类变量,在类中定义的 x 是实例变量。4 请阅读下面的程序代码Class Personvoid say()System.out.println(“hello);class Examplepublic static void main(String args)Person p2=new Person();Person p1=new Person();p2.say();p1.say();p2=null;p2.say();以下关于程序运行结果的描述中,正确的选项是A.输出 1 个 helloB.输出 2 个 hello 后会抛出异常C.输出 3 个 hello 后会抛出异常D.不会输出 hello,直接抛出异常答案:B 解析:程序中创立了 2 个 Person 对象 p1、p2,并分别调用了 say()方法输出两个 hello,然后将 p2 对象置为 null,使 p2 对象失去了引用,因此再次使用p2 对象调用 say()方法时,会抛出异常。5 以下关键字中,用于创立类的实例对象的是。A.classB.newC.privateD.void答案:B 解析:Java 中使用 new 关键字创立对象,class 用于定义一个类,private 是权限修饰符,表示表示只能在本类中访问,void 表示无返回值6 下面哪个关键字用于将类中的属性私有化A.defaultB.publicC.privateD.protected答案:C7 下面关于调用构造方法的描述中,正确的选项是A.构造方法在类定义的时候被调用B.构造方法在创立对象的时候被调用.实用文档C.构造方法在调用对象方法时被调用D.构造方法在使用对象的变量时被调用答案:B 解析:调用构造方法创立对象构造方法的作用是为对象中的属性赋值,在创立对象时,构造方法就会被调用。8 以下关于构造方法定义的描述中,错误的选项是。A.方法名与类名相同B.在方法名的前面没有返回值类型的声明 C.当定义了有参构造方法,系统默认的无参构造方法依然存在D.在方法中不能使用 return 语句返回一个值答案:C9 以下关于构造方法的描述,错误的选项是。A、一个类中只能定义一个构造方法B、一个类中可以定义多个构造方法C、如果在一个类中定义有参的构造方法,jvm 就不会提供默认的无参构造方法D、构造方法的作用是用来给属性进行初始化的 答案:A10Person p=new Person(“张三,23);这条语句会调用以下哪个构造方法给属性进行初始化A.public Person()B.public Person(String name,int age)this.name=name;this.age=age;C.public Person(int age,String name)this.age=age;this.name=name;D.public Person(String name)this.name=name;答案:B 解析:创立对象时会找到匹配的构造方法给属性进行初始化,由于Person p=newPerson(“张三,23);这条语句中有两个参数,而且第1 个参数是 String 类型的,第2 个参数是 int 类型的,因此会调用 B 选项中的构造方法。11 在 Java 中,要想让一个类继承另一个类,可以使用以下哪个关键字?A.inheritsB.implementsC.extendsD.modifies答案:C12 在类的继承关系中,需要遵循以下哪个继承原那么?A.多重B.单一C.双重D.不能继承答案:B13 类的继承关系如下:class Employee;class Manager extends Employeer;class Director extends Employee;那么以下语句能通过编译的有哪些?A.Employee e=new Manager();B.Director d=new Manager();C.Director d=new Employee();D.Manager m=new Director();答案:A14 编译运行下面的程序,结果是什么?public class A public static void main(String args)B b=new B();b.test();void test()System.out.print(A);class B extends A void test()super.test();.实用文档System.out.print(B);A.产生编译错误B.代码可以编译运行,并输出结果ABC.代码可以编译运行,但没有输出 D.编译没有错误,但会产生运行时异常答案:B15public class Example public static void main(String args)tryint rst=4/0;System.out.println(ret=+rst);catch(Exception e)System.out.println(catch语句块执行);return;finallySystem.out.println(finally语句块执行);System.out.println(程序继续向下执行);运行以上程序,输出的结果是A.catch 语句块执行 B.catch 语句块执行 程序继续向下执行C.catch 语句块执行 finally 语句块执行 D.0 程序继续向下执行答案:C 解析:在 try语句块中发生了除零异常,因此会执行 catch 语句块中的内容,输出catch语句块执行,finally 语句块中表示一定会执行的语句,虽然catch 中有 return,但依然会输出finally 语句块执行16 下面程序运行的结果是class Demopublic static void main(String args)tryint x=div(1,2);catch(Exception e)System.out.println(e);System.out.println(x)public static int div(int a,int b)return a/b;A.输出 1B.输出 0C.输出 0.5D.编译失败答案:C17 在 trycatch(_e)横线处需要填写的是A.异常对象B.异常类C.任意对象D.任意类答案:B 解析:catch 代码块需要一个形参指明它所能够接收的异常类型,这个参数的类型.实用文档必须是 Exception 类或其子类18 以下对于 trycatch 语句描述正确的选项是A.trycatch 语句处理程序中的错误B.try.catch语句处理程序中的 bugC.try.catch语句处理程序中的异常D.以上说法都不正确答案:C 解析:try.catch语句处理程序中的异常19 以下选项中,关于 final 修饰成员变量的说法正确的选项是?A.被 final 修饰的成员变量可以被屡次赋值B.被 final 修饰的成员变量为常量C.final 只能在接口中修饰成员变量D.以上都不对答案:B 解析:被 final 修饰的变量为常量,不能被第二次赋值或改变引用20 以下选项中,不可以被final 修饰的是?A.接口B.类C.方法D.变量答案:A 解析:final 关键字可用于修饰类、变量和方法题目难度:容易21 分析下面程序,哪一行代码能正确赋值?class Demo public void method()final int num1=10;static int num2=20;abstract int num3=30;private int num4=40;A.final int num1=10;B.static int num2=20;C.abstract int num3=30;D.private int num4=40;答案:A 解析:final 可以修饰局部变量22 下面程序的运行结果是public class Demo public static void main(String args)try System.out.println(10/0);System.out.println(除法正常运行);catch(ArithmeticException e)System.out.println(除数不能为 0);A.编译失败 B.编译通过,没有结果输出C.输出:除法正常运行D.输出:除数不能为 0答案:D 解析:虽然是运行时期异常,但是也可以使用trycatch 语句进行处理。一旦进入处理语句就不会再回去执行23 以下选项中,用于解压jar 文件的命令是A.jar cB.jar xC.jar vD.jar-f答案:B 解析:参数 x 用于解压24 以下选项中,可以导入指定包中所有类的是A.package 包名;B.package 包名.*;C.import 包名;D.import 包名.*;答案:D 解析:如果有时候需要用到一个包中的许多类,那么可以使用“import 包名.*;.实用文档来导入该包下所有类25 以下关于 protected 的说法中,正确的选项是A.protected 修饰的方法,只能给子类使用 B.protected 修饰的类,类中的所有方法只能给子类使用 C.如果一个类的成员被 protected 修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问D.以上都不对答案:C 解析:如果一个类的成员被 protected 访问控制符修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问26 如果类的成员被访问控制符来修饰,那么这个成员只能被该类的其它成员访问,其它类无法直接访问A.privateB.defaultC.protectedD.public答案:A 解析:如果类的成员被 private 访问控制符来修饰,那么这个成员只能被该类的其它成员访问,其它类无法直接访问。类的良好封装就是通过private 关键字来实现的27 阅读以下的代码public class Test public static void main(String args)_class Outer static class Inner public void method()System.out.println(method);以下选项中,填写在空白处可以使程序正常运行的是A.Outer o=new Outer();o.method();B.Inner I=new Inner();i.method();C.Outer.Inner oi=new Outer.Inner();oi.method();D.以上答案都不对答案:C28 阅读以下的程序public class Test3 public static void main(String args)_class Outer static class Inner public void method()System.out.println(method);以下选项中,可以正确输出method()方法的是.实用文档A、Outer o=new Outer();o.method();B、Inner I=new Inner();i.method();C、Outer.Inner oi=new Outer.Inner();oi.method();D、以上答案都不对答案:C29 以下关于使用 this 调用构造方法的说法中,错误的选项是?A.使用 this 调用构造方法的格式为this(参数 1,参数 2)B.只能在构造方法中使用this 调用其它的构造方法C.使用 this 调用其它构造方法的语句必须放在第一行D.在一个类的两个构造方法中可以使用this 互相调用答案:D30 以下关于 this 的说法中,错误的选项是A.只能在构造方法中使用this 调用其它的构造方法,不能在成员方法中使用B.在构造方法中,使用 this 调用构造方法的语句必须位于第一行,且只能出现一次C.this 关键字可以用于区分成员变量与局部变量D.this 可以出现在任何方法中答案:D31 在 Java 语言中,所有的类都直接或间接继承自【】类答案:Object32 一个类如果实现一个接口,那么它就需要实现接口中定义的全部【】,否那么该类就必须定义成【】答案:方法,抽象类33 异常的捕获通常由 try、catch 两局部组成,【】代码块用来存放可能发生异常,【】代码块用来处理产生的异常答案:try,catch34 在 Java 语言中,允许使用已存在的类作为根底创立新的类,这种技术我们称为【】答案:继承35 当一个对象被当成垃圾从内存中释放时,它的【】方法会被自动调用。答案:finalize()36final 修饰的方法,不能被子类【】答案:重写解析:final 修饰的方法为最终方法,不能被重写37final 修饰的局部变量只能被赋值【】次答案:一解析:final 最终变量,只能赋值一次38RuntimeException 类及其子类都是【】异常答案:运行时39 自定义异常需要继承【】类答案:Exception解析:Exception 是所有异常的超类40 构造方法没有返回值类型,因此不能使用【】语句。答案:return41 构造方法的名称必须和【】保持一致。答案:类名42 如果在某一个方法中定义的局部变量与成员变量同名时,在该方法中通过变量名访问到的是【】。答案:局部变量43 类与对象的关系中,【】用于描述多个对象的共同特征,它是对象的模板。【】用于描述现实中的个体,它是类的实例。答案:类,对象解析:类用于描述多个对象的共同特征,它是对象的模板。对象用于描述现实中的个体,它是类的实例。44 请简述面向对象的三大特征。答案:封装、继承、多态面向对象的特点主要可以概括为封装性、继承性和多态性。.实用文档其中封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。继承性主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。多态性指的是在程序中允许出现重名现象,它指在一个类中定义的属性和方法被其它类继承后,它们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义。45 简述成员变量与局部变量的区别。答案:1.定义位置的区别:1成员变量是定义在方法之外类之内的变量,称作为成员变量成员属性.2局部变量是定义在方法之内的变量。2.生命周期的区别:1成员变量是随着对象的创立而存在,随着对象的消失而消失。2局部变量随着方法的调用执行到了创立局部变量的语句的时候存在,局部变量一旦出了自己的作用域马上从内存中消失。3.存储位置的区别:1成员变量是存储于堆内存中的。2局部变量是存储于栈内存中的。4.初始值的区别:1成员变量有默认的初始值:int 0double 0.0float 0.0f;char String nullboolean false2局部变量没有默认的初始值,要先初始化才能使用。46 请简述类与对象之间的关系。答案:类是同一种类型对象的抽象,它用于描述一组对象的共同特征和行为。面向对象的编程思想力图在程序中对事物的描述与该事物在现实中的形态保持一致。为了做到这一点,面向对象的思想中提出两个概念,即类和对象。其中,类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。47 请简要说明使用封装的好处。答案:1.提高了数据的平安性。2.隐藏了实现细节。3.操作简单、方便。49 请阅读下面的程序,在空白处填写正确的代码,定义一个无参构造方法。public class Person public _()答案:Person解析:在一个类中定义的方法如果同时满足以下三个条件,该方法称为构造方法,具体如下:构造方法的定义需要同时满足三个条件,具体如下:1:方法名与类名相同2:在方法名的前面没有返回值类型的声明3:在方法中不能使用 return 语句返回一个值因此,只需在横线处填写Person 即可。.实用文档50 请简述构造方法的特点。答案:1.构造方法名与类名相同 2.在构造方法名的前面没有返回值类型的声明3.在构造方法中不能使用 return 语句返回一个值51 请简要说明什么是构造方法重载。答案:与普通方法一样,构造方法也可以重载,在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。52 阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果并分析出现此结果的原因。否那么请说明编译失败的原因。class Catvoid mi()throws NullPointerExceptionSystem.out.println(Cat mi mi.);public class SmallCat extends Catvoid mi()throws ExceptionSystem.out.println(SmallCat mi mi.);public static void main(String a)throws ExceptionCat cat=new SmallCat();cat.mi();答案:程序编译失败。在子类中,如果要覆盖父类的一个方法,而父类中的方法声明了 throws异常,那么子类的方法也可以抛出异常,但切记子类方法抛出的异常只能是父类方法抛出的异常的同类或子类,而不能是父类。53 在横线处填入正确的代码,可以让局部变量的 age 给成员变量的 age 赋值。class Person int age;public Person(int age)_/让局部变量的 age 给成员变量的 age 赋值public int getAge()return this.age;答案:this.age=age;54 阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果并分析出现此结果的原因。否那么请说明编译失败的原因。public class Example public static void main(String args)try System.out.println(4/0);System.out.println(程序没有异常);.实用文档 catch(Exception e)System.out.println(程序发生异常);return;finally System.out.println(finally语句执行);答案:程序发生异常finally 语句执行解析:try 语句中存放可能发生异常的语句,catch 语句用于对异常进行处理,finally 中的语句表示一定会被执行的语句。在进行 4/0 运算时,程序发生了除 0 异常,catch 语句捕获异常执行并输出“程序发生异常,此时在catch 语句中还有一个 return 语句,但是这并不会影响 finally 语句的正常运行,程序仍然输出“finally 语句执行,除非在 catch 语句中执行System.exit(0);退出虚拟机,finally 语句才不执行。55 简述抽象类和接口的区别?答案:在 Java 中,使用 abstract 关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface 关键字。56 阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否那么请说明编译失败的原因。public class Outer public Stringname=Outer;private class Inner String name=inner;void showName()System.out.println(name);public static void main(String args)Inner inner=new Outer().new Inner();System.out.println(inner.name);答案:程序能够编译通过,运行的结果为“inner57 构造方法和普通的成员方法有什么区别?答案:构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return 语句返回一个值。解析:58 阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否那么请说明编译失败的原因。public class Demo.实用文档public static void main(String args)new Object()public void show()System.out.println(helloworld);.show();答案:helloworld 解析:匿名内部类继承了Object 类,并自定义了一个 show()方法,*使用匿名内部类调用 show()方法,调用的是子类也就是匿名内部类自身的show()方法,*编译和运行均能正常进行,因此打印输出了helloworld60 请简要概述 trycatch 语句中,try 和 catch 的作用答案:try 中编写被检查可能出现异常的代码,catch 用于抓住或者不捕获异常,并处理异常解析:61 简述 thorws 的作用答案:throws 总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常。对大多数 Exception 子类来说,Java 编译器会强迫你声明在一个成员函数中抛出的异常的类型。如果异常的类型是 Error 或 RuntimeException,或它们的子类,这个规那么不起作用,因为这在程序的正常局部中是不期待出现的。如果你想明确地抛出一个 RuntimeException,你必须用 throws 语句来声明它的类型解析:Throws 用于声明方法抛出异常,如果是 RuntimeException,可以不用抛出。但是如果是编译异常,必须使用throws 抛出62 运行时异常的特点是?答案:运行时异常的特点是Java 编译器不会对其进行检查解析:RuntimeException 类及其子类都是运行时异常。运行时异常的特点是Java 编译器不会对其进行检查,也就是说,当程序中出现这类异常时,即使没有使用 try.catch 语句捕获或使用 throws 关键字声明抛出,程序也能编译通过63 简要概述,当用 final 修饰符修饰类、变量和方法时,被修饰者有哪些特性答案:final 关键字可用于修饰类、变量和方法,它有“这是无法改变的或者“最终的含义,因此被 final 修饰的类、变量和方法将具有以下特性:1、final 修饰的类不能被继承。2、final 修饰的方法不能被子类重写。3、final 修饰的变量成员变量和局部变量是常量,只能赋值一次。64 请简述 Java 中继承的概念以及使用继承的好处答案:概念:在 Java 中,类的继承是指在一个现有类的根底上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。好处:继承性主要描述的是类与类之间的关系,通过继承,可以无需重新编写原有类的情况下,对原有类的功能进行使用和扩展。65 请简要说明单例设计模式的实现步骤。答案:1)使用 private 关键字私有化构造方法;2)在类的内部创立一个该类的实例对象,并使用私有的静态变量引用该对象;3)为了让类的外部能够获得类的实例对象,需要定义一个公有的静态方法,用于返回该类实例。66 请问将一个类设计成单例设计模式(饿汉式),需要哪些步骤?答案:1.私有构造函数 2.创立私有的静态的本类对象3.对外提供公有的静态的返回值类型为本类的方法.实用文档1 以下关于 ServerSocket 类的说法,错误的选项是?A.ServerSocket 类是被 final 关键字修饰的类,因此没有子类B.ServerSocket 类用于表示效劳器端 C.ServerSocket 类中的 accept()方法会阻塞 D.创立 ServerSocket 对象时可以指定需绑定到的端口答案:A解析:ServerSocket 类是一个普通方法,没有被 final 关键字所修饰,它有一个直接子类是SSLServerSocket2 以下哪个类用于实现 TCP 通信的客户端程序?A.ServerSocketB.SocketC.ClientD.Server答案:B3 以下哪个方法是 DatagramSocket 类用于发送数据的方法?A.receive()B.accept()C.set()D.send()答案:D4 以下方法中,类用于接收客户端请求的方法是A.get()B.accept()C.receive()D.connect()答案:B5 以下关于 UDP 协议的说法,错误的选项是A.UDP 是无连接通信协议B.UDP 协议消耗资源小,通信效率高C.使用 UDP 协议时可能会丧失数据D.在传输重要数据时建议使用UDP 协议答案:D 解析:正是由于 UDP 的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用 UDP 协议。6 以下对 File 类的 public boolea isFile()方法的描述,哪个是正确的?A.判断该 File 对象所对应的是否是文件B.判断该 File 对象所对应的是否是目录C.返回文件的最后修改时间D.在当前目录下生成指定的目录答案:A7 以下关于 InetAddress 类的 getHostName()方法的返回值的说法中,错误的选项是 A.如果创立的 InetAddress 对象是用主机名创立的,那么将该主机名返回B.如果不是使用主机名创立的InetAddress对象,那么将根据 IP 地址反向查找对应的主机名,找到那么返回主机名C.该方法用于返回某个 IP 地址的主机名D.如果不是使用主机名创立的InetAddress对象,那么将根据IP 地址反向查找对应的主机名,找不到那么返回 null答案:D 解析:如果不是使用主机名创立的InetAddress 对象,那么将根据IP 地址反向查找对应的主机名,找不到那么返回IP 地址,而不是 null8InetAddress 类中能获取 IP 地址及主机名的方法是A.getHostName()B.getLocalHost()C.getHostAddress()D.getAddress()答案:B 解析:getHostName()只能获取主机名,getHostAddress()只能获取IP地址,getAddress()获取 IP 地址的字节数组,getLocalHost()获取到 InetAddress 对象,里面包含 IP 地址及主机名,因此答案 B 正确9 要产生20,999之间的随机整数可以使用以下哪个表达式?A.(int)(20+Math.random()*97)B.20+(int)(Math.random()*980)C.(int)Math.random()*999D.20+(int)Math.random()*980答案:B10 以下 Math 类的方法中,-4.4 通过哪个方法运算后,结果为-5.0?A.round()B.min()C.floor()D.ceil()答案:C11 阅读下面的程序:public class test public static void main(String args)int i;floatf=2.3f;.实用文档double d=2.7;i=(int)Math.ceil(f)*(int)Math.round(d);System.out.println(i);程序执行后,运行结果为以下哪个选项?A.9B.5C.6答案:A12 先阅读下面的程序片段:String str1=new String(java);String str2=new String(java);StringBuffer str3=new StringBuffer(java);对于上述定义的变量,以下表达式的值为true 的是哪个?A.str1=str2;B.str1.equals(str2);C.str1=str3;D.以上都不对答案:B13 以下选项中,哪个流中使用了缓冲区技术?A.BuffereOutputStreamB.FileInputStreamC.DataOutputStreamD.FileRea