java练习_Java基础笔试练习(九)

e708200e60fc3aa30ac416f18104c1c4.png

Java基础笔试练习(九)

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

int Arry_a[] = new int[10];System.out.println(Arry_a[10]);

A.ArithmeticException

B.NullPointException

C.IOException

D.ArrayIndexOutOfBoundsException

答案:

D

解析:

定义的数组长度为10,角标即为0-9,访问数组角标10会出现数组角标越界异常

2.下面关于继承的描述正确的是?

A.在Java中只允许单一继承

B.在Java中一个类只能实现一个接口

C.在Java中一个类不能同时继承一个类和实现一个接口

D.Java的单一继承使代码不可靠

答案:

A

解析:

3. Java 源程序文件的扩展名为()

A..java

B..class

C..exe

D..jar

答案:

A

解析:

4.Java 语言用以下哪个类来把基本类型数据封装为对象()

A.包装类

B.Class

C.Math

D.Object

答案:

A

解析:

5. 下列代码的执行结果是()

 public class Test { public static int a = 1; public static void main(String[] args) { int a = 10; a++; Test.a++; Test t=new Test(); System.out.println("a=" + a + " t.a=" + t.a); }} 

A.a=10 t.a=3

B.a=11 t.a=2

C.a=12 t.a=1

D.a=11 t.a=1

答案:

B

解析:

值为1的a属于类变量也叫作成员变量,值为10的a是局部变量 首先a++时就近原则,用局部变量10来加,Text.a直接用类名调用成员变量的情况,只能是static 修饰的成员变量1来加,然后又实例化了对象,在输出中第一个a= 用就近原则输出11,第二个t.a 对象只能调用类变量输出2

6.下面有关java classloader说法错误的是?

A.Java默认提供的三个ClassLoader是BootStrap ClassLoader,Extension ClassLoader,App ClassLoader

B.ClassLoader使用的是双亲委托模型来搜索类的

C.JVM在判定两个class是否相同时,只用判断类名相同即可,和类加载器无关

D.ClassLoader就是用来动态加载class文件到内存当中用的

答案:

C

解析:

JVM在判定两个class是否相同时,不仅要判断两个类名是否相同,而且要判断是否由同一个类加载器实例加载的。

7.以下那个数据结构是适用于"数据必须以相反的顺序存储然后检索" ? ()

A.Stack

B.Queue

C.List

D.Link List

答案:

A

解析:

栈-先进后出(比喻:坐电梯) 队列-先进先出(水管) list-链表(怎么存就怎么取)

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

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

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

C.DataInputStream din = new DataInputStream(new FileInputStream(this.filename));。

D.System.in.read(buffer)。

答案:

B

解析:

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

9.Please write the output result 。

public class Test{ public static void changeStr(String str) { str = "welcome"; } public static void main(String[] args) { String str = "1234"; changeStr(str); System.out.println(str); }}

A.1234

B.welcome

C.空

D.不确定

答案:

A

解析:

string的值是不可改变的,所有试图更改String的行为都会创建一个新的String.

10.关于String,StringBuilder以及StringBuffer,描述错误的是()

A.对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象

B.StringBuffer是线程安全

C.StringBuilder是线程安全

D.可以修改StringBuilder和StringBuffer的内容

答案:

C

解析:

A,java中的字符串存储在字符串常量区,不会改变,发生改变是会新创建一个对象

B,StringBuffer是线程安全的StringBuilder

C,StringBuilder跟StringBuffer功能相同,区别是StringBuilder不是线程安全的

D,StringBuilder和StringBuffer底层都是以字符数组存放的,可以修改内容

11.以下哪个不属于JVM堆内存中的区域()?

A.survivor区

B.常量池

C.eden区

D.old区

答案:

B

解析:

jvm堆分为:新生代(一般是一个Eden区,两个Survivor区),老年代(old区)。

常量池属于 PermGen(方法区)

12.运行下面代码,输出的结果是

class A { public A() {System.out.println("class A"); } {System.out.println("I'm A class"); } static {System.out.println("class A static"); }}public class B extends A { public B() {System.out.println("class B"); } {System.out.println("I'm B class"); } static {System.out.println("class B static"); } public staticvoid main(String[] args) {new B();}

A.

class A static class B static I'm A class class A I'm B class class B

B.

class A static I'm A class class A class B static I'm B class class B

C.

class A static class B static class A I'm A class class B I'm B class

D.

class A static class A I'm Aclass class B static class B I'm B class

答案:

A

解析:

①父类静态变量和静态代码块(按照声明顺序);

②子类静态变量和静态代码块(按照声明顺序);

③父类成员变量和代码块(按照声明顺序);

④父类构造器;

⑤子类成员变量和代码块(按照声明顺序);

⑥子类构造器。

13.下列语句正确的是:?

A.形式参数可被字段修饰符修饰

B.形式参数不可以是对象

C.形式参数为方法被调用时真正被传递的参数

D.形式参数可被视为local variable

答案:

D

解析:

14.以下程序输出结果是?

String str ="";System.out.print(str.split(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值