Java面向对象期末复习1-80题

1、在java中,下列标识符不合法的有(ACD)

A.new

B.$Usdollars

C.1234

D.car.taxi

合法标识符由字母数字下划线和美元符号组成,且不能以数字开头,不能是java关键字。

new是关键字

2、下面不属于java包装类的是(A)

A.String

B.Long

C.Character

D.Short

6a7efe665d314ba4907a55f62407780f.png

3、下面属于java基本数据类型的有(B)

A.String

B.byte

C.Integer

D.Array

4、以下会产生信息丢失的类型转换是(B)

A.float a=10;

B.int a = (int)8846.0;

C.byte a=10;int b=-a

D.double d=100

5、在Java中表示换行符的转义字符是:(A)

A.\n

B.\f

C.’n’

D.\ddd

6、经过强制类型转换以后,变量a,b的值分别为多少(B)

short a =128;

byte b =(byte)a;

A.128,127

B.128,-128

C.128,128

D.编译错误

7、以下哪一个不是赋值符号(C)

A.+=

B.<<=

C.<<<=

D.>>>=

8、下面代码的运行结果是(C)

public static void main (String[]args) {

String s;

System.out.println ("s="+s);

}

A.代码编程成功,并输出”S=”

B.代码编译成功,并输出”s=null'

C.由于String s没有初始化,代码不能编译通过。

D.代码编译成功,但捕获到NullPointException异常

9、阅读如下代码。请问,对语句行test.hello(0.描述正确的有(A)

package NowCoder;

class Test {      

public static void hello() {

            System.out.println("hello");  

}

}

public class MyApplication {

         public static void main(String[] args) {           

// TODO Auto-generated method stub          

Test test=null;

                 test.hello();

         }

}

A.能编译通过,并正确运行

B.因为使用了未初始化的变量,所以不能编译通过

C.以错误的方式访问了静态方法

D.能编译通过,但因变量为null,不能正常运行

10.cnt的值是(A)

public class Test{

static int cnt 6;

static{

cnt +9;

}

public static void main(String[]args)

System.out.println ("cnt cnt)

Static{

cnt /=3;

}

}

A.cnt=5

B.cnt=2

C.cnt=3

D.cnt=6

11.给定下面代码,程序输出结果是:(C)

class Test{

public String toString(){

System.out.print (aaa")

return "bbb";

}

}

public static void main(String[]args){

Test test new Test();

System.out.println (test);

}

A.aaa

B.bbb

C.aaabbb

D.bbbaaa

12.以下代码的输出结果是:(C)

public class Person{

private String name "Person";

int age=0;

}

public class Child extends Person{

public String grade;

public static void main(String[]args) {

Person p new Child();

System.out.println(p.name);

}

}

A.输出:Person

B.没有输出

C编译出错

D运行出错

13.

A派生出子类B,B派生出子类C,并且在java源代码有如下声

明:

1.A a0=new A();

2.Aa1=new BO;

3.A a2=new CO;

问以下哪个说法是正确的?(D)

A.只有第一行能通过编译

B.第1、2行能通过编译,但第3行编译出错

C.第1、2、3行能通过编译,但第2、3行运行时出错

D.第1行,第2行和第3行的声明都是正确的

14.如下代码,输出结果是(B)

class Base {

Base() {

System.out.print ("Base");

}

}

public class Alpha extends Base  {

public static void main(String[]args){

new Alpha();

new Base();

}

}

A.Base

B.BaseBase

C.编译失败

D.代码运行但没有输出

15.以下代码的执行结果是(C)

class X {

Y y=new Y();

public X(){

System.out.print (X);

}

}

class Y{

public Y(){

System.out.print ("Y");

}

}

public class Z extends X{

Yy=new Y();

public Z() {

System.out.print ("Z");

}

public static void main(String[]args) {

new Z();

}

}

AZYXX

B.ZYXY

C.YXYZ

D.XYZX

16.以下关于关键字supe的描述中,正确舶的是:(A)

A.super关键字只代表当前对象内部的那一块父类型特征,不包

含在子类对象中

B.super关键字不仅可以指代子类的直接父类,还可以直接指代

父类的父类

C.子类通过super关键字只能调用父类的方法,而不能调用父类

的属性

D.子类通过super关键字只能调用父类的属性,而不能调用父类

的方法

17.在java中,一个类可同时定义为许多同名的方法,这些方法的形式参数个数,类型或顺序各不相同,传回的值可能各不相同,这种面向对象的特性称为(C)

A.隐藏

B.重写

C.重载

D.无此特性

18.以下说法,描述错误的是:(A)

A.重载要求两个方法名字相同,但是参数的类型和个数不同,不要求返回值类型相同

B.重写要求两个方法名字相同,同时参数的类型和个数相同,不要求返回值类型相同

C.重写的方法可以使用@Override注解来修饰

D.父类的方法为private的时候,子类方法不能进行重写.

19.以下代码的输出结果是(A)

class B {

public int Func() {

System.out.print B);

return 0;

}

}

class D extends B {

public int Func() {

System.out.print D);

return 0;

}

}

public class Test {

public static void main(String[]args) {

B a new B(;

Bb new D();

a.Func (

b.Func ()

}

}

A.BD

B.DB

C.BB

D.DD

20.在java中,一个类(B)

A.可以继承多个类

B.可以实现多个接口

C.在一个程序中只能有一个子类

D.只能实现一个接口

21.public interface IService {String NAME="default";}

默认类型等价表示是哪一项:(C)

A.public String NAME="default";

B.public static String NAME="default";

C.public static final String NAME="default";

D.private String NAME="default";

22.下列关于java抽象类的说法哪个正确?(D)

A.某个抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法

B接口和抽象类是同一回事

C.可以用抽象类直接去实例化创建对象

D.一个类只能继承一个抽象类

A.子类必须重写父类的抽象方法,而不是重载

C.抽象类不能创建对象,其创建对象没有意义,但是抽象类可以保存一类事物具备的共同属性和行为,让子类进行继承。

抽象类的构造方法不是给自己用的,而是为了让子类调用构造方法创建对象时初始化用的。

23.java接口的修饰符可以为(CD)

A.private

B.protected

C.final

D.abstract

24下列程序运行结果是:(B)

public class Example {

String str new String("good");

char[ ] ch = { 'a','b','c'};

public static void main (String args[])

Example ex = new Example();

ex.change (ex.str,ex.ch);

System.out.print (ex.str +  "and ");

System.out.print (ex.ch);

public void change(String str,char ch[]) {

str "test ok";

ch[0]=’g';

}

}

A.good and abc

B.good and gbc

C.test ok and abo

D.test ok and gbc

25.以下代码的输出结果是(B)

public class SystemUtil{

public static boolean isAdmin(String userId) {

return userId.toLowerCase ()==admin;

}

public static void main(String[]args) {

System.out.println (isAdmin ("Admin));

}

}

A.true

B.false

C.1

D编译错误

26.关于下列程序段,说法正确的是(C)

String s1="abc"+"def"; // 1

String s2=new String (s1); //2

if (s1.equals (s2))//3

System.out.println ("equals succeeded");//4

if(s1=s2) //5

System.out.println ("==succeeded"); //6

A.行4,行6都不执行

B.行6执行,行4不执行

C.行4执行,行6不执行

D.行4,行6都将执行

27.在Java中,直接赋值存放字符串常量的对象属于(B)类对象。

A.Character

B.String

C.StringBuffer

D.Vector

28.以下关于Java字符串的说法,错误的是(D)

A.字符串常量是不可变对象,不能修改字符串的内容

B.使用==比较字符串是比较对象的地址,而不是字符串的具体内容是否相同

C.使用contains方法可以判定字符串中是否包含某个子字符串

D.使用subString方法可以截取字符串子串,传入的参数通过前闭后闭区间的形式表示子串的范围

D.半开半闭

29.以下说法错误的是:(D)
A.针对一个String对象频繁调用+=是比较低效的,

B.可以使用StringBuilder中的append方法更高效完成字符串

拼接

C.StringBuilder是可变对象

D.StringBuffer比StringBuilder更高效

30.关于Java的异常处理机制的叙述哪些正确?(C)

A.如果程序发生错误及捕捉到异常情况了,才会执行finallyi部分

B.其他选项都不正确

C.当try区段的程序发生异常且被catch捕捉到时,才会执行catch区段的程序

D.catchi部分捕捉到异常情况时,才会执行finally部分

A.不论程序是否发生错误及捕捉到异常情况,都会执行finally部分

C.当try区段的程序发生异常且被catch捕捉到时,才会执行catch区段的程序

31.有关下述Java代码描述正确的选项是(D)

public class TestClass {

private static void testMethod() {

System.out.println (testMethod");

}

public static void main(String[]args) {

((TestClass)null).testMethod();

}

}

A.编译不通过

B.编译通过,运行异常,报NullPointerException

C.编译通过,运行异常,报llegalArgumentException

D.运行正常,输出testMethod

32.在异常处理中,如释放资源,关闭数据库、关闭文件应由(C)语句来完成。

Atry子句

B.catch子句

C.finally子句

D.throw-子句

33 . 下列在Java语言中关于数据类型和包装类的说法,正确的是(B)

A.基本(简单)数据类型是包装类的简写形式,可以用包装类替代基本(简单)数据类型

B.long和double都占了64位(64bit)的存储空间。

C.默认的整数数据类型是int,默认的浮点数据类型是float.

D.和包装类一样,基本(简单)数据类型声明的变量中也具有静态方法,用来完成进制转化等.

34.下列数据结构中,不属于线性表的是(D)

A.循环队列

B链表

C.动态顺序表

D.二叉树

35.动态顺序表中,(B)操作需要检查是否需要扩容

A.删除

B.插入

C初始化

D清空

36.ArrayList和LinkList的描述,下面说法错误的是?(D)

A.ArrayList和LinkedList都实现了List接口

B.ArrayList是可改变大小的数组,而LinkedList是双向链接串列

C.LinkedList不支持高效的随机元素访问

D.在LinkedList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在ArrayList的中间插入或删除一个元素的开销是固定的

Arraylist的内存结构是数组,当超出数组大小时创建一个新的数组,把原数组中元素拷贝过去,其本质是顺序存储的线性表,插入和删除操作会引发后续元素移动,效率低,但是随机访问效率高的LinkedList的内存结构是用双向链表存储的,链式存储结构插入和删除效率高,不需要移动,但是随机访问效率低,需要从头开始向后依次访问。

37关于链表和顺序表间的区别,叙述错误的是(D).

A.链表和顺序表都属于线性表

B.链表不能随机访问其中的某个元素,顺序表可以

C.链表能做的事,顺序表都可以完成,只是操作方法不同,效率不同

D.链表在进行插入和删除的时候,速度总是比顺序表快

链表中删除和插入操作比顺序表快,但是元素的访问速度比顺序表要慢。

38. 面向对象方法的多态性是指(C)

A.一个类可以派生出多个特殊类

B.一个对象在不同的运行环境中可以有不同的变体

C.针对一消息,不同的对象可以以适合自身的方式加以响应

D.一个对象可以是由多个其他对象组合而成的

39.在某个类A中存在一个方法:void set(intX),以下不能为这个方法的重载的声明的是(A)

A.void set(int y)

B.int set(int x,double y)

C.double set(int x,int y)

D.void set(int x,int y)

40.下列哪个语句语法正确?(C)

A.byte y=11;byte x=y +y;

B.String x=new Object();

C.Object x=new String("Hellow");

D.int a [11]=new int [11];

对byte型变量进行相加时,会先自动转换为int型进行计算,所以结果也是int型的,int型赋值给byte需要强制转换

int arr[]=new int [11];

7039116a16c4433eb38e306fbed3c933.jpg

a48772fa029848879aa81536386fe5bc.jpg

41.下面属于java合法变量名定义的是?(C)

A.final

B.1var1

C.var2

D.var3&

42.下列关于异常处理的描述中,错误的是(D)

A.程序运行时异常由Java虚拟机自动进行处理

B.使用try-catch-finallyi语句捕获异常

C.可使用throw语句抛出异常

D.捕获到的异常只能在当前方法中处理,不能在其他方法中处理

43.为初始化其成员变量,每个类都定义的方法是(C)

A.方法

B.main

C.构造方法

D.对象

44.以下哪个接口的定义是正确的?(D)

A.interface B  { void print() { } };

B.interface B  { static void print(); }

C abstract interface B extends A1,A2  //A1、A2为已定义的接口{abstract void print(){}}

D interface B { void print(); }

45.若所用变量都已正确定义,以下选项中,非法的表达式是(C)

A.a!=4||b==1

B.′a'%3

C.′a'=1/3

D.′A'+32

46.下面所示的java代码,运行时,会产生(D)类型的异常

int Arry_a[]=new int[10];

System.out.println(Arry_a[10]);

A.ArithmeticException

B.NullPointException

C.IOException

D.ArraylndexOutOfBoundsException

47.下面对静态数据成员的描述中,正确的是(D)

A.静态数据成员可以在类体内进行初始化

B.静态数据成员不可以被类的对象调用

C.静态数据成员不受private控制符的作用

D.静态数据成员可以直接用类名调用

静态数据成员必须初始化在类外,静态数据成员是该类所有对象共有的

48.下面有关JAVA异常类的描述,说法错误的是?(D)

A.异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和lOException等继承Exception

B.非RuntimeException一般是外部错误(非Error),其一般被try{catch语句块所捕获

C.Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形,Errorz不需要捕捉

D.RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被try{catch语句块所捕获

49.要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以(A)

A.让该类不使用任何关键字 

B.使用private关键字

C.使用protected关键字

D.使用void关键字

50.下面代码的运行结果为:(C)

import java.io.*;

import java.util.*;

public class foo{

public static void main (String[]args){

String s;

System.out.println("s="+s);

}

}

A.代码得到编译,并输出“s=”

B.代码得到编译,并输出"s=nu"

C.由于String s没有初始化,代码不能编译通过

D.代码得到编译,但捕获到NullPointException.异常

51. 有时为了避免某些未识别的异常抛给更高的上层应用,在某些接口实现中我们通常需要捕获编译运行期所有的异常,catch下述哪个类的实例才能达到目的:(B)

A.Error

B.Exception

C.RuntimeException

D.Throwable

52.若有定义语句:inta=10;double b=3.14;则表达式'A'+a+b值的类型是(C)

A.char

B.int

C.double

D.float

53.下列不属于类及类成员的访问控制符是:(C)

A.public

B.private

C.static

D.protected

54.进行Java基本的GUI设计需要用到的包是(C)

A.java.io

B.java.sql

C.java.awt

D.java.rmi

55.关于类的叙述正确的是(B)

A在类中定义的变量称为类的成员变量,在别的类中可以直接使用.

B.局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的控制流块中

C.使用别的类的方法仅仅需要引用方法的名字即可.

D.只要没有定义不带参数的构造函数,JVM都会为类生成一个默认构造函数

56.有以下类定义:

abstract class Animal {

abstract void say();

}

public class Cat extends Animal{

public Cat(){

System.out.printf("I am a cat");

public static void main(String[]args){

Catcat=new Cat();

}

}

选(B)

A.I am a cat

B.Animal能编译,Cat不能编译

C.Animal不能编译,Cat能编译

D.编译能通过,但是没有输出结果

57. 关于JDK1.8中Java的抽象类、接口,以下描述错误的是?(C)

A.抽象类不一定含有抽象方法,接口中的方法都是抽象方法

B.一个类只能继承一个抽象类,但可以实现多个接口;一个接口可以继承多个接口

C.抽象类和接口中的方法都没有方法体

D.抽象类可以含有私有成员变量,接口不含有私有成员变量

58.根据以下接口和类的定义,要使代码没有语法错误,则类Hero中应该定义方法(D)。

interface Action{

     void fly();

}

class Hero implements Action{//......}

A.private void fly(){ }

B.void fly(){ }

C.protected void fly(){ }

D.public void fly(){ }

59.下面这条语句一共创建了多少个对象:String s="welcome"+"to"+360;(A)

A.1

B.2

C.3

D.4

60.在main0方法中给出的整型数组,如果将其写到一个文件中,需要(B)。

A.System.out.print(buffer[i]);

B.DataOutputStream dout = new DataOutputStream(new FileOutputStream(this.filename));

C.DatalnputStream din = new DatalnputStream(new FilelnputStream(this.filename));

D.System.in.read(buffer);

input和output指的是对于程序而言。input是从文件读取进来,output是输出到文件。

61.下面字段声明中哪一个在interface主体内是合法的?(B)

A.private final static int answer 42;

B.public static int answer 42;

C.final static answer 42;

D.int answer;

A不能用private修饰

B在接口中默认public static final,这三个关键词可以省略

C没写属性的类型

D final修饰的属性必须赋值

62.以下哪个不是Java中的集合类型(C)

  1. Vector
  2. Set
  3. String
  4. List

63.Java Application(Java应用程序)源程序文件编译后的字节码文件的扩展名是(B)。

A.java

B.class

C.exe

D.jar

64.关于对象成员占用内存的说法哪个正确?(B)

A.同一个类的对象共用同一段内存

B.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间

C.对象的方法不占用内存

D.以上都不对

65.下面叙述错误的是(C)

A.一个类可以有多个构造方法

B.最终类不能派生子类,最终方法不能被覆盖

C.如果一个类中没有定义构造方法,则Java在生成这个类的实例时不会调用构造方法。

D.数组一旦创建之后,就不能再改变其长度

66.Java表达式"13&17"的结果是什么?(D)

A.30

B.13

C.17

D.1

67.下面有关java hashmap的说法错误的是?(C)

A.HashMap的实例有两个参数影响其性能:"初始容量”和"加载因子”。

B.HashMap的实现不是同步的,意味着它不是线程安全的

C.HashMap:通过开放地址法解决哈希冲突

D.HashMap中的key-value都是存储在Entry数组中的

68.在JAVA中,假设A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法和语句格式应该为(B)

A.this.A(x)

B.this(x)

C.super(x)

D.A(x)

69.下面有关Java的说法错误的是(C)

A.一个类可以实现多个接口

B.protected成员在子类可见性可以修改

C.final的成员方法实现中只能读取类的成员变量

D.String:是不可修改的,且java运行环境中对string对象有一个对象池保存

70.在Java中下面Class的声明正确的是(D)?

A.public abstract final class Test abstract void method();

B.public abstract class Test abstract final void method();

C.public abstract class Test abstract void method(){}}

D.public class Test final void method(){}

71.在java中,要表示10个学生的成绩,下列声明并初始化数组正确的是(D)

A.int[]score=new int[]

B.int score[10]

C.int score[]=new int[9]

D.int score[]=new int[10]

72.java中,用(A)关键字定义常量?

A.final

B.#define

C.float

D.const

73.对于同一类中的两个方法,在判断它们是不是重载方法时,肯定不考虑(C)

A.参数个数

B.参数类型

C.返回值类型

D.参数顺序

74.下列叙述中,错误的是(B)

A.File类能够存储文件属性

B.File类能够读写文件

C.File类能够建立文件

D.File类能够获取文件目录信息

75.Java7特性中,abstract class和interface的区别不包括(C).

A.抽象类可以有构造方法,接口中不能有构造方法

B.抽象类中可以有普通成员变量,接口中没有普通成员变量

C.抽象类中不可以包含静态方法,接口中可以包含静态方法

D.一个类可以实现多个接口,但只能继承一个抽象类。

76.Java的集合框架中重要的接口java.util.Collection定义了许多方法。选项中哪个方法不是Collection接口所定义的(C)

A.int size()

B.boolean containsAll(Collection c)

C.compareTo(Object obj)

D.boolean remove(Object obj)

77.关于访问权限说法正确的是?(D)

A.外部类定义前面可以修饰oublic,protected:和orivate

B.局部内部类前面可以修饰oublic,protected和orivate

C.匿名内部类前面可以修饰oublic,protected和orivate

D.以上说法都不正确

78.下列说法哪个正确(C)

A.不需要定义类,就能创建对象

B.对象中必须有数据域和方法

C.数据域可以是基本类型变量,也可以是一个对象

D.数据域必须是基本类型变量

79.在Java中,以下关于方法重载和方法重写描述正确的是?(D)

A.方法重载和方法的重写实现的功能相同

B.方法重载出现在父子关系中,方法重写是在同一类中

C.方法重载的返回值类型必须一致,参数项必须不同

D.方法重写的返回值类型必须相同或相容。(或是其子类)

80.下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?(B)

A实例变量指的是类中定义的变量,即成员变量,如果没有初始化,会有默认值。

B局部变量指的是在方法中定义的变量,如果没有初始化,会有默认值

C.类变量指的是用static修饰的属性

D.final变量指的是用final修饰的变量

  • 28
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值