java复习题

更新时间:2024-05-08 14:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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); } }

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(\} else if(b) {

System.out.println(b); } else if(!b) {

System.out.println(\} else {

System.out.println(\}

程序的执行结果是( )

A.a B.b C.c D.d 答案:C

解析:条件语句的值为false,所以值为false的语句才可以输出,这里用到了逻辑运算符!(非)即!true 的值为false,因此输出结果是c 6请阅读下面的程序

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=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【】关键字用于引入包 答案:import

11若x = 2,则表达式 ( x + + )/3 的值是【】 答案:0 12若int a =2; a+=3;执行后,变量a的值为【】 答案:5 13方法重载的条件是:方法名相同,【】不相同 答案:参数列表 解析:方法的重载与返回值类型无关,它只有两个条件,一是方法名相同,二是参数列表(参数个数或参数类型)不相同

14定义一个方法时,要有访问修改符、返回值类型、方法名、【】 答案:参数列表解析:方法的定义比较严格,必须要有访问修饰符、返回值类型、方法名称、参数列表(参数类型、参数名称)

“隐藏对象的属性和实现细节,仅对外提供公有的方法”描述的是面向对象的哪个特征( )

A.封装 B.继承 C.多态 D.以上都不是

答案:A解析:封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。

2下列选项中,不属于面向对象特征的是( )。

A.继承性 B.封装性 C.跨平台性 D.多态性

答案:C解析:面向对象有三种特性,分别是封装性、继承性和多态性。跨平台性是Java

语言的特点,而不是面向对象的特征。 3请阅读下面的代码 class A{ int 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 答案:C 7下面关于调用构造方法的描述中,正确的是( )

A.构造方法在类定义的时候被调用 B.构造方法在创建对象的时候被调用

C.构造方法在调用对象方法时被调用 D.构造方法在使用对象的变量时被调用

答案:B解析:调用构造方法创建对象构造方法的作用是为对象中的属性赋值,在创建对象时,构造方法就会被调用。

8下列关于构造方法定义的描述中,错误的是( )。

A.方法名与类名相同 B.在方法名的前面没有返回值类型的声明C.当定义了有参构造方法,系统默认的无参构造方法依然存在D.在方法中不能使用return语句返回一个值 答案:C

9下列关于构造方法的描述,错误的是( )。

A、一个类中只能定义一个构造方法B、一个类中可以定义多个构造方法C、如果在一个类中定义有参的构造方法,jvm就不会提供默认的无参构造方法D、构造方法的作用是用来给属性进行初始化的 答案:A

10Person 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 答案:C 12在类的继承关系中,需要遵循以下哪个继承原则?

A.多重 B.单一 C.双重 D.不能继承 答案:B 13已知类的继承关系如下: 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(); 答案:A

14编译运行下面的程序,结果是什么? public class A {

public static void main(String[] args) { B b = new B(); b.test(); }

void test() {

System.out.print(\ } }

class B extends A { void test() { super.test();

System.out.print(\ } }

A.产生编译错误 B.代码可以编译运行,并输出结果AB

C.代码可以编译运行,但没有输出 D.编译没有错误,但会产生运行时异常 答案:B

15public class Example {

public static void main(String[] args) { try{

int rst = 4/0;

System.out.println(\ }catch(Exception e){

System.out.println(\语句块执行\ return; }finally{

System.out.println(\语句块执行\ }

System.out.println(\程序继续向下执行\ } }

运行以上程序,输出的结果是( )

A.catch语句块执行B.catch语句块执行 程序继续向下执行

C.catch语句块执行 finally语句块执行D.0 程序继续向下执行 答案:C解析:在try语句块中发生了除零异常,因此会执行catch语句块中的内容,输出\语句块执行\,finally语句块中表示一定会执行的语句,虽然catch中有return,但依然会输出\语句块执行\

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.编译失败 答案:C 17在try{}catch(______e){}横线处需要填写的是( ) A.异常对象 B.异常类 C.任意对象 D.任意类

答案:B解析:catch代码块需要一个形参指明它所能够接收的异常类型,这个参数的类型

必须是Exception类或其子类

18以下对于try?catch语句描述正确的是( )

A.try?catch语句处理程序中的错误B.try...catch语句处理程序中的bug C.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解析:虽然是运行时期异常,但是也可以使用try?catch语句进行处理。一旦进入处理语句就不会再回去执行

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(\ } } }

下列选项中,填写在空白处可以使程序正常运行的是()

A.Outer o = new Outer(); o.method(); B.Inner I = new Inner(); i.method(); C.Outer.Inner oi = new Outer.Inner(); oi.method(); D.以上答案都不对 答案:C 28阅读下列的程序 public class Test3 {

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、以上答案都不对 答案:C

29下列关于使用this调用构造方法的说法中,错误的是?( ) A.使用this调用构造方法的格式为this([参数1,参数2?]) B.只能在构造方法中使用this调用其它的构造方法 C.使用this调用其它构造方法的语句必须放在第一行

D.在一个类的两个构造方法中可以使用this互相调用 答案:D 30下列关于this的说法中,错误的是( )

A.只能在构造方法中使用this调用其它的构造方法,不能在成员方法中使用

B.在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次 C.this关键字可以用于区分成员变量与局部变量 D.this可以出现在任何方法中 答案:D

31在Java语言中,所有的类都直接或间接继承自【】类 答案:Object 32一个类如果实现一个接口,那么它就需要实现接口中定义的全部【】,否则该类就必须定义成【】 答案:方法,抽象类

33异常的捕获通常由try、catch两部分组成,【】代码块用来存放可能发生异常,【】代码块用来处理产生的异常 答案:try,catch

34在Java语言中,允许使用已存在的类作为基础创建新的类,这种技术我们称为【】 答案:继承

35当一个对象被当成垃圾从内存中释放时,它的【】方法会被自动调用。 答案: finalize() 36final修饰的方法,不能被子类【】 答案:重写 解析:final修饰的方法为最终方法,不能被重写

37final修饰的局部变量只能被赋值【】次 答案:一 解析:final最终变量,只能赋值一次

38RuntimeException类及其子类都是【】异常 答案:运行时 39自定义异常需要继承【】类 答案:Exception 解析:Exception是所有异常的超类

40构造方法没有返回值类型,因此不能使用【】语句。答案:return 41构造方法的名称必须和【】保持一致。 答案:类名

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 false

2)局部变量没有默认的初始值,要先初始化才能使用。

46请简述类与对象之间的关系。

答案:类是同一种类型对象的抽象,它用于描述一组对象的共同特征和行为。

面向对象的编程思想力图在程序中对事物的描述与该事物在现实中的形态保持一致。为了做到这一点,面向对象的思想中提出两个概念,即类和对象。其中,类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。 47请简要说明使用封装的好处。

答案:1.提高了数据的安全性。2.隐藏了实现细节。3.操作简单、方便。 49请阅读下面的程序,在空白处填写正确的代码,定义一个无参构造方法。 public class Person { public ____() {} }答案:Person 解析:在一个类中定义的方法如果同时满足以下三个条件,该方法称为构造方法,具体如下: 构造方法的定义需要同时满足三个条件,具体如下: 1:方法名与类名相同

2:在方法名的前面没有返回值类型的声明 3:在方法中不能使用return语句返回一个值 因此,只需在横线处填写Person即可。

本文来源:https://www.bwwdw.com/article/mbwg.html

Top