java复习题91865.doc
如有侵权,请联系网站删除,仅供学习与交流java复习题91865【精品文档】第 23 页1、下列关于java语言特点描述错误的是A.Java语言不支持指针 B.Java具有自动垃圾回收的机制 C.Java只能运行在Window和Linux平台 D.Java允许多个线程同时执行2下列关于JDK的说法中,错误的是?A.JDK是Java开发工具包的简称 B.JDK包括Java编译器、Java文档生成工具、Java打包工具等 C.安装JDK后,还需要单独安装JRE D.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启动器 答案:B 1下列选项中,哪一个是单行注释的符号?( ) A. B./ C./ D. 答案:B解析:/ 双斜杠表示注释单行代码 2下列常量中,属于整型常量的是?( )A.198 B.2e3f C.true D.null 答案:A解析:2e3f属于浮点数常量,true属于布尔常量,null属于null常量3下列选项中,哪个是程序的运行结果class Test public static void main(String args) int a = 3; int b = 6; System.out.print(a=b); System.out.print(a<b); System.out.print(a!=b); System.out.print(a>=b);A.false false true false B.false false true true C.false true true false D.true false false true答案:C解析:3=6(错),3<6(对),3!=6(对),3>=6(错)4若x=6 ,y=5 则表达式int max=x>y?x:y 的结果为()A.6 B.5 C.true D.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.a B.b C.c D.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 <= 5; i+) a = i % 2; while (a- >= 0) b+; System.out.println("a=" + a + ",b="+ b);下列选项中,哪一个是正确的运行结果( )A.a=8,b=-2 B.a=-2,b=8 C.a=3,b=0 D.a=0,b=3 答案:B解析:本题中有两个循环语句,分别是外层循环的for语句和内层循环的while语句,首先程序会执行for循环中的语句,并执行循环体中的表达式a=i%2,计算出a的值,然后在进入while循环计算b的值,循环往复直到外层循环条件i>5为止 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.0121 C.01 D.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 Person void say() System.out.println(“hello”);class Example public static void main(String args)Person p2 = new Person();Person p1 = new Person(); p2.say();p1.say();p2=null;p2.say();下列关于程序运行结果的描述中,正确的是()A.输出1个hello B.输出2个hello后会抛出异常C.输出3个hello后会抛出异常 D.不会输出hello,直接抛出异常 答案:B解析:程序中创建了2个Person对象p1、p2,并分别调用了say()方法输出两个hello,然后将p2对象置为null,使p2对象失去了引用,因此再次使用p2对象调用say()方法时,会抛出异常。5下列关键字中,用于创建类的实例对象的是( )。 A.class B.new C.private D.void 答案:B解析:Java中使用new关键字创建对象,class用于定义一个类,private是权限修饰符,表示表示只能在本类中访问,void表示无返回值6下面哪个关键字用于将类中的属性私有化( ) A.default B.public C.private D.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 = new Person(“张三”,23);这条语句中有两个参数,而且第1个参数是String类型的,第2个参数是int类型的,因此会调用B选项中的构造方法。11在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字?A.inherits B.implements C.extends D.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) try int rst = 4/0; System.out.println("ret = "+rst); catch(Exception e) System.out.println("catch语句块执行"); return; finally System.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 Demo public static void main(String args) try int 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.输出1 B.输出0 C.输出0.5 D.编译失败 答案: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 c B.jar x C.jar v D.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.private B.default C.protected D.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 0 double 0.0 float 0.0f; char ' ' String null boolean 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 Cat void mi( ) throws NullPointerException System.out.println( "Cat mi mi . " );public class SmallCat extends Cat void mi( ) throws Exception System.out.println( "SmallCat mi mi . " ); public static void main( String a ) throws Exception Cat 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 String name="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);答案:程序能够编译通过,运行的结果为“inner”57构造方法和普通的成员方法有什么区别?答案:构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用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的作用