JAVA习题JAVASE.docx

上传人:b****5 文档编号:6142087 上传时间:2023-01-04 格式:DOCX 页数:28 大小:28.31KB
下载 相关 举报
JAVA习题JAVASE.docx_第1页
第1页 / 共28页
JAVA习题JAVASE.docx_第2页
第2页 / 共28页
JAVA习题JAVASE.docx_第3页
第3页 / 共28页
JAVA习题JAVASE.docx_第4页
第4页 / 共28页
JAVA习题JAVASE.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

JAVA习题JAVASE.docx

《JAVA习题JAVASE.docx》由会员分享,可在线阅读,更多相关《JAVA习题JAVASE.docx(28页珍藏版)》请在冰豆网上搜索。

JAVA习题JAVASE.docx

JAVA习题JAVASE

JAVA习题

一、选择题

1.下列哪一种叙述是正确的()

A.abstract修饰符可修饰字段、方法和类

B.抽象方法的body部分必须用一对大括号{}包住

C.声明抽象方法,大括号可有可无

D.声明抽象方法不可写出大括号

2.如下代码

publicclassTest{

publicintaMethod(){

staticinti=0;//方法体内不能定义全局变量。

i++;

returni;

}

publicstaticvoidmain(Stringargs[]){

Testtest=newTest();

test.aMethod();

intj=test.aMethod();

System.out.println(j);

}

}

输出结果是什么?

A.0

B.1

C.2

D.编译失败

3.下列哪种说法是正确的()

  A.实例方法可直接调用超类的实例方法//私有和子类重写的方法

  B.实例方法可直接调用超类的类方法//私有

  C.实例方法可直接调用其他类的实例方法

  D.实例方法可直接调用本类的类方法

4.如下代码:

classSuper{

publicIntegergetLenght(){returnnewInteger(4);}

}

publicclassSubextendsSuper{

publicLonggetLenght(){returnnewLong(5);}

publicstaticvoidmain(String[]args){

Supersooper=newSuper();

Subsub=newSub();

System.out.println(sooper.getLenght().toString()+","+

sub.getLenght().toString());

}

}

输出是什么?

A.4,4

B.4,5

C.5,4

D.5,5

E.编译失败//继承重写方法后的返回类型错误

5.如下代码

10.publicObjectm(){

11.Objecto=newFloat(3.14F);

12.Object[]oa=newObject[1];

13.oa[0]=o;

14.o=null;

15.oa[0]=null;

16.print'return0';

17.}

当Float对象在第11行被创建后,什么时候能够被垃圾回收?

A.13行以后.

B.14行以后.

C.15行以后.

D.16行以后.

6.如下代码:

classBase{

Base(){System.out.print("Base");}

}

publicclassAlphaextendsBase{

publicstaticvoidmain(String[]args){

newAlpha();-----调用父类无参的构造方法

newBase();

}

}

结果是什么?

A.Base

B.BaseBase

C.编译失败.

D.代码运行但没有输出.

E.运行时抛出异常

7.以下关于异常的说法正确的是:

A.一旦出现异常,程序运行就终止了 

B.如果一个方法申明将抛出某个异常,它就必须真的抛出那个异常 

C.在catch子句中匹配异常是一种精确匹配

D.可能抛出系统异常的方法是不需要申明异常的

8.如下代码:

publicclassFoo{

publicstaticvoidmain(String[]args){

try{

return;

}finally{

System.out.println("Finally");

}

}

}

输出结果是什么?

A.Finally

B.编译失败

C.代码正常运行但没有任何输出.

D.运行时抛出异常

9.在一个线程中Sleep(1000)方法,将使得该线程在多少时间后获得对CPU的控制(假设睡眠过程中不会有其他事件唤醒该线程)?

A.正好1000毫秒

B.1000毫秒不到 

C.=>1000毫秒

D.不一定

10.下面的语句会产生什么样的输出?

System.out.println(4&7);

A.44二进制0100

B.57二进制0111

C.64&7二进制0100

D.7

E.0

11.下面的程序中,temp的最终值是什么?

longtem

p=(int)3.9;//temp=3

temp%=2;

A.0

B.1

C.2

D.3

E.4

12.下面哪个不是JAVA关键字

Aintegerint

Bdouble

Cfloat

Ddefault

13.下列标识符(名字)命名原则中,正确的是()

A.类名的首字母小写

B.变量和方法名的首写字母大写

C.接口名的首写字母小写

D.常量完全大写

14.类Test1定义如下:

1.publicclassTest1{

2.publicfloataMethod(floata,floatb){return0;}

3.

4.}

将以下哪种方法插入行3是不合法的。

()

A、publicfloataMethod(floata,floatb,floatc){return0;}

B、publicfloataMethod(floatc,floatd){return0;}

//方法不能重复

C、publicintaMethod(inta,intb){return0;}

D、privatefloataMethod(inta,intb,intc){return0;}

15.哪个语句创建了一个数组实例?

A.int[]ia=newint[15];

B.floatfa=newfloat[20];

C.char[]ca=“SomeString”;

D.intia[][]={4,5,6}{1,2,3};

16.以public修饰的类如:

publicclassCar{…}则Car()

A、可被其它程序包中的类使用B、仅能被本程序包中的类使用

C、不能被任意其它类使用D、不能被其它类继承

17.Java程序的执行过程中用到一套JDK工具,其中java.exe是指()

A.Java文档生成器B.Java解释器

C.Java编译器D.Java类分解器

18.下列关于构造方法的叙述中,错误的是()

A.Java语言规定构造方法名与类名必须相同

B.Java语言规定构造方法没有返回值,但不用vold声明

C.Java语言规定构造方法不可以重载

D.Java语言规定构造方法只能通过new自动调用

19.构造函数何时被调用()

A.类定义时B.创建对象时

C.调用对象方法时D.使用对象的变量时

20.break语句()

A、只中断最内层的循环B、只中断最外层的循环

C、借助于标号,可以实现任何外层循环中断D、只中断某一层的循环

21.Java语言中下面哪个可以用作正确的变量名称()

A、3DB、nameC、extendsD、implements

22.下面哪一项不是Java类访问控制关键字()

A.publicB.protected

C.thisD.Private

23.在接口中以下哪条定义是正确的?

()

A.voidmethoda();

B.publicdoublemethoda();

C.publicfinaldoublemethoda();

D.staticvoidmethoda(doubled1);

E.protectedvoidmethoda(doubled1);

//接口中的成员变量都是publicstaticfinal(默认)

//接口中的方法都是publicabstract(默认)

24. 下面哪个语句正确地声明一个整型的二维数组?

 A.int a[][] = new int[][];  

 B.int a[10][10] = new int[][];  

 C.int a[][] = new int[10][10];  

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

 E.int []a[] = new int[10][10];

25.下面哪些不是java的简单数据类型?

A.shortB.BooleanC.DoubleD.float

26.下面哪些语句能够正确地生成5个空字符串?

   

 A.String a[]=new String[5];for(int i=0;i<5;a[i++]=“”);  

 B.String a[]={“”,“”,“”,“”,“”};  

 C.String a[5];  

 D.String[5]a;  

 E.String []a=new String[5];for(int i=0;i<5;a[i++]=null);

27.下列说法错误的有()

 A.数组是一种对象

 B.数组属于一种原生类

 C.intnumber=[]={31,23,33,43,35,63}

 D.数组的大小可以任意改变

28.不能用来修饰interface的有()

 A.privateB.publicC.protectedD.static

29.下列说法错误的有()

 A.在类方法中可用this来调用本类的类方法

 B.在类方法中调用本类的类方法时可直接调用

 C.在类方法中只能调用本类中的类方法

 D.在类方法中绝对不能调用实例方法

30.如下代码

classA{

A(){}

}

classBextendsA{

}

哪两个说明是正确的?

A.B类的构造器应该是public.

B.B类的构造器应该是没有参数

C.B类的构造器应该调用this().

D.B类的构造器应该调用super().

31.下列标识符不合法的有()

 A.newB.$UsdollarsC.1234D.car.taxi

32.如下代码:

publicclassX{

publicXaMethod(){returnthis;}

}

publicclassYextendsX{

}

哪两个方法能加到Y类的定义中?

A.publicvoidaMethod(){}

B.privatevoidaMethod(){}

C.publicvoidaMethod(Strings){}

D.privateYaMethod(){returnnull;}

E.publicXaMethod(){returnnewY();}

//继承的方法返回值不能改变

33.下面哪三个描述是正确的?

A.默认构造器初始化方法变量

B.默认构造器有和它所在类相同的访问修饰词.

C.默认构造器调用其父类的无参构造器.

D.如果一个类没有无参构造器,编译器会它创建一个默认构造器.

E.只有当一个类没有任何构造器时,编译器会为它创建一个默认构造器

34.哪二种声明防止方法覆盖?

A、finalvoidmethoda(){}

B、voidfinalmethoda(){}

C、staticvoidmethoda(){}

D、staticfinalvoidmethoda(){}

E、finalabstractvoidmethoda(){}

35.下列程序运行结果

publicclassExSuper{

Stringname;

Stringnick_name;

publicExSuper(Strings,Stringt){

name=s;

nick_name=t;

}

publicStringtoString(){

returnname;

}

}

publicclassExampleextendsExSuper{

publicExample(Strings,Stringt){

super(s,t);

}

publicStringtoString(){

returnname+"a.k.a"+nick_name;

}

publicstaticvoidmain(String[]args){

ExSupera=newExSuper("First","1st");

ExSuperb=newExample("Second","2nd");

System.out.println("ais"+a.toString());

System.out.println("bis"+b.toString());

}

}

A编译时会出现异常。

B运行结果为:

aisFirst

bissecond

C运行结果为:

aisFirst

bisSeconda.k.a2nd

D运行结果为:

aisFirsta.k.a1nd

bisSeconda.k.a2nd

36.abstractclassMineBase{

abstractvoidamethod();

staticinti;

}

PublicclassMineextendsMineBase{

publicstaticvoidmain(Stringargv[]){

int[]ar=newint[5];

for(i=0;i

System.out.println(ar[i]);

}

}

}

//继承必须实现父类的方法

A打印5个0。

B编译出错,数组ar[]必须初始化。

C编译错误,Mine应声明为abstract。

D出现IndexOutOfBoundes的例外。

二、问答题

1.多线程有几种实现方法,都是什么?

同步有几种实现方法,都是什么?

线程实现有两中方法继承Thread类和实现Runnable接口

同步有用synchronized修饰声明的类,也可以用synchronized抱住需要同步的代码;还有在其他程序有wait()实现等待,并且用notify()来唤醒。

2.Static变量是什么含义

声明静态变量或方法属于全局,由类直接调用

3.垃圾回收器的基本原理是什么?

垃圾回收器可以马上回收内存吗?

有什么办法主动通知虚拟机进行垃圾回收

当对象创建时候,gc就开始对对象的大小,状态,地址开始监控,当该对象不可达时,gc就开始有义务回收。

垃圾回收器不会立刻回收。

可以用过System.gc()来通知gc,但是具体什么时候回收不知道

4.Overload和Override的区别。

Overloaded的方法是否可以改变返回值的类型?

Overload重载是在类的内部对方法进行更该,只要方法名相同,其他都可以变

Override重写是继承父类的方法后重写,其方法名,返回值类型,参数个数,数据类型,顺序,修饰符必须跟父类一样。

5.在main(String[]args)方法内是否可以调用一个非静态方法?

不能必须创建一个对象,调用该对象的方法

6.同一个文件里是否可以有两个public类?

不能公开类只有一个

7.方法名是否可以与构造器的名字相同?

可以

8.初始化了一个没有run()方法的线程类,是否会出错?

会,启动线程必须要有run()方法

9.选择语句case中,允许使用的值有哪些

charintbyteshortint

10.if(-0.0==0.0)是相等还是不等?

相等

11.一个抽象类是否可以没有抽象方法?

可以抽象类不一定有抽象方法,有抽象方法必定是抽象类

12.Collection与Collections的区别?

Collection是实现层次结构的接口,他可以用在List,Set中而不能用在Map中

Colletions是由Collection接口中的静态方法组成的类,他可以为List,Set,Map提供方法

13.Java成员变量默认初始化的值。

Boolean(false)char(null)short(0)byte(0)

Int(0)long(0L)float(0.0f)double(0.0d)

引用类型默认为null

14.面向对象的特征有哪些方面?

继承多态(重载,重写)封装抽象

15.String是最基本的数据类型吗?

String和StringBuffer的区别?

String是引用数据类型

String声明是固定的,当再次赋值时,是重新产生了一个对象,而StringBuffer是随数据长度变化的,不产生新的对象,并且线程安全。

16.int和Integer有什么区别

Int是基本数据类型是原始类

Integer是个数据封装类

17.运行时异常与检查异常有何异同?

检查异常时会处理catch

运行异常在运行时会由虚拟机往外抛出,如果没有处理抛出异常的代码,那么该线程会中断,或者主程序中断

18.说出ArrayList,LinkedList的存储性能和特性.

Arraylist是以数组方式存储数据,具有约定的长度,一般比实际的数据长,以便进行插入,和增加元素,该方式按序列号索引数据,所以读取数据块,但是需要插入数据时要涉及后面元素的存储位置,所以插入慢。

Linkedlist需要根据索引向前或向后遍历,所以读取数据慢,但是由于是链式存储数据,所以只需知道前后项,所以插入数据快。

19.谈谈final,finally,finalize的区别

Final是一个修饰词,被final修饰的类不能被继承,能不做接口,被修饰的方法不能被重载,被修饰的成员变量,必须赋初值。

并且在引用中只读。

Finally在异常trycatch处理中使用,以finally开始的语句一定会执行

Finalize是一个Object的方法,所有类都继承了Object,该方法在gc中使用,当要回收一个对象是,就会最后调用该方法。

来确定该对象是否被gc回收。

20.&和&&的区别。

前者是位运算符,安位运算,后者是逻辑运算符

21.HashMap和Hashtable的区别。

Hashtable是Dictionary的子类,前者是实现了Map接口

Hashtable的方法是同步的,而HashMap的方法在缺省情况下是非同步的,也就是说。

在多线程中,不用专门的操作就可以安全的使用Hashtable,而使用hashmap则有需要同步机制,可用过Collections类的静态方法synchronizedMap(Mapm)来解决

MapCollections.synchronizedMap(Mapm)返回的是一个Map,重新封装了底层的HashMap使其在多线程状态下,也是安全的

在HashMap中null可以作为键,但是最多只有一个,但是键对应的值可以有一个或多个null值,当使用get()方法得到value值时,该值如果是null,那说明HashMap中可能没有该键或者该键值为空,也就是说不能用get()来判断该HashMap中是否有该键,应该使用containSkey()方法来判断

22.Strings=newString("xyz");创建了几个StringObject?

两个一个字符串对象s一个字符串引用对象xyz

23.Math.round(11.5)等於多少?

Math.round(-11.5)等於多少?

前者12后者-11

24.shorts1=1;s1=s1+1;有什么错?

shorts1=1;s1+=1;有什么错?

前者数据类型不对,1为int后者可以发生了强转

25.sleep()和wait()有什么区别?

Sleep()是Thread类的静态方法,在那个线程里面,那个线程就睡,该方法不会释放锁机制,不出让系统资源,并且一定会捕获异常,在程序各处都可以使用。

Wait()是Object的方法,该方法会释放cpu资源,不一定会捕获异常,自能在方法或者代码块中使用,并且程序通过notify()方法来唤醒程序

 

26.数组有没有length()这个方法?

String有没有length()这个方法?

数组没有length()方法,有length属性

String有length()属性

27.Overload和Override的区别。

Overloaded的方法是否可以改变返回值的类型?

Overload是重载,也就是在类里面的方法可以重名,但是方法具有不同的参数,参数类型,返回值类型,或者修饰词

Override是重写,是子类对继承父类方法的重写,只能改变方法内部的内容。

28.Set里的元素能重复吗?

那么用什么方法区分是否重复?

Set里面的元素不能重复,并且是无序的,

使用迭代器Iterator()

29.”==”与equal有何区别?

两个比较的都是对象的引用(地址),但是在一些类中覆盖了equals方法,比较的是值的内容是否相等

30.error和exception有什么区别?

Error是程序运行出错,该错误恢复很难,比如溢出,程序不能处理这个错误

Exception是一种抛出异常,程序正常运行就不会抛出。

当出现异常时就会有相应的处理机制。

31.abstractclass和interface有什么区别?

接口一定是抽象的方法。

抽象类可以有抽象方法

32.abstract的method是否可同时是static

不能,

 

33.接口是否可继承接口?

抽象类是否可实现(implements)接口?

抽象类是否可继承实体类答(concreteclass)?

接口可以继承接口抽象类可以实现接口抽象类可以继承实体类,但是该实体类必须有明确的构造方法

34.启动一个线程是用run()还是start()?

有什么区别?

用star

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1