2024年3月7日发(作者:)

一.单选题

1)在JAVA中,要判断D盘下是否存在文件,应该使用以下()判断语句。(选择一项)

a) if(new File(“d:

”) .exists() = =1)

b) if((“d:

”) = =1)

c) if(new File(“d:

/”) .exists( ) )

d) if((“d:

/))

答案:C2)在java中,()对象可以使用键/值的形式保存数据。(选择一项)

a)ArrayList

b) HashSet

c) HashMap

d) LinkedList

答案:C3)给定java代码,如下:

public byte count(byte b1,byte b2){

return___;}要使用这段代码能够编译成功,横线处可以填入()。(选择一项)

a)(byte) (b1-b2)

1 / 21

b)(byte) b1-b2

c) b1-b2

d) (byte) b1/b2

a)protected

b)private

c)public

d)friendly

答案:C5)在Java中,下列()语句不能通过编译。(选择一项)

a) String s=“join”+“was”+“here”;

b) String s=“join”+3;

c) int a= 3+5

d) float f=5+

5.5;

答案:D6)给定java代码如下,运行时,会产生()类型的异常。(选择一项)

String s=null;

(“abc”);

a)ArithmeticException

b)NullPointerException

c)IOException

d)EOFException

2 / 21

答案:B7)给定如下java代码,编译运行之后,将会输出()。

public class Test{

public static void main(String args[]){

int a=5;

n(a%2==1) ?(a+1) /2:a/2);}}(选择一项)

a)1

b)2

c)

2.5

d)3

答案:D8) java程序中,main方法的格式正确的是()。(选择一项)

a)static void main(String[] args)

b)public void main(String[] args)

c)public static void main(String[]s)

d)public static void main(String[] args)

答案:D9)以下Java语句中,String str =“9”;str =ing(1,3);执行后str中的值为。(选择一项)

a)“23”

b)“123”

c)“12”

d)“234”

3 / 21

答案:A10)给定如下java代码,编译运行时,结果是()。(选择一项)

public class Test{

public static void main (String args[]) {

for (int i=0;i<3; i++) {

(i) ;}(i) ;}}

a)编译时报错

b)正确运行,输出012

c)正确运行,输出123

d)正确运行,输出0123

答案:A11)Java语言中,String str=”9”,n(f(“5”)),输出结果为()。

(选择一项)

a)6

b)5

c)4

d)-1

答案:C12)给定某java程序的main方法,如下:

public static void main(String[] args){

(“Hello”+args[1]) ;}从命令行传参:

people world nation,该程序的运行结果是()。(选择一项)a)Hello

people

b)Hello world

4 / 21

c)Hello people world nation

d)运行时出现异常

答案:B13)在java中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是( )。(选择一项)

a)interface A extends B,C

b)interface A implements B,C

c)class Aimplements B,C

d)class A implements B,implements C

答案:C14)给定JAVA代码,如下:

Class Parent{

public void count() {

n(10%3) ;}}

public class Test extends Parent{

public void count() {}public static void main(String args[]) {

Parent p = new Test() ;

() ;}}

运行编译后,输出结果是()。(选择一项)

a)1

b)

1.0

c)3

d)

5 / 21

3.5

答案:C15)给定某java程序的main方法,如下;(选择一项)

public static void main(String [ ]args) {

int i = 0;

n(i++) ;}a)0

b)1

c)编译错误

d)运行时出现异常

答案:A16)给定java程序,如下:

编译运行,结果是()。(选择一项)

public class Test{

private static final int counter=10;

public static void main(String[] args) {

n(++counter) ;}}

a)10

b)11

c)编译错误

d)运行时出现异常

答案:C17)在JAVA中,要创建一个新目录,要使用()类的实例。(选择一项)

a)File

6 / 21

b)FileOutputStrean

c)PrintWriter

d)Dir

答案:A18)在Java中,下列()是不合法的赋值语句。(选择一项)

c) float f=1*

3.0;

答案:C19)在java中,下列()类不能派生出子类.(选择一项)

a) publicclassMyClass{}

b) classMyClass{}

c) abstractclassMyClass{}

d) finalclassMyClass {}

答案:D20)在Java中,关于HashMap类的描述,以下说法错误的是()。(选择一项)a) HashMap使用键/值的形式保存数据

b) HashMap能够保证其中元素的顺序

c) HashMap允许将null用作键

d) HashMap允许将null用作值

答案:B21)在java中,以下()命令能够将java源文件编译为类文件(选择一项)a) java

b) javaw

c) javac

d) jar

7 / 21

答案:C22)在JAVA中,通过调用以下()方法,可以装载SUN的JDBC-ODBC桥。(选择一项)

a) newClass() .load(“bcDriber”) ;

b) newClass() .forName(“bcDriver”) ;

c) e(“bcDriver”) ;

d) (“bcDriver”) ;

答案:C23)在JAVA中,对于PreparedStatement的方法setInt(int i,int x) ,描述正确的是()。

(选择一项)

a)使得第i-1个参数的值设为x

b)使得第x-1个参数的值设为i

c)使得第x个参数的值设为i

d)使得第i个参数的值设为x

答案:D24)给定JAVA代码,如下:

编译运行,结果是()。(选择一项)

publicstatic voidmain(string[] args){String s;

n(“s=”+s) ;}a)编译错误

b)编译通过,但出现运行是错误

c)正常运行,输出s=null

d)正常运行,输出s=

答案:A25)在java的异常处理模型中,无论是否发生异常,()块中的代码都会被执行。(选择一项)

8 / 21

a)try

b)catch

c)finally

d)throw

答案:C26)给定一个java程序的main方法的代码片段如下:

假如d目录下不存在文件,现运行该程序,下面的结果正确的是()。(选择一项)

try {

PrintWriterout=newPrintWriter(new FileOutputStream(“d:

/”)) ;Stringname=”chen”;

(name) ;

( ) ;}catch(Execptione) {

n(“文件没有发现!“);}a)将在控制台上打印:

“文件没有发现!”

b)正常运行,但没有生成文件

c)运行后生成 ,但该文件中无内容

d)运行后生成,该文件内容为:

chen

答案:D27)在Java中,下列代码运行后的输出结果是()。(选择一项)

int x=5*3;

int y=x+5/x+3;

9 / 21

n(y) ;

a) 18

b) 21

c) 19

d) 4

答案:A28)在java中,已获得默认类型的Resultset对象rs,要获取结果集中的数据,必须执行的语句是()。(选择一项)

a) ()

b) us()

c) t()

d) vious()

答案:A29)下列选项中,不属于Java语言的关键字的是()。(选择一项)

a) import

b) malloc

c) extends

d) new

答案:B30)在JAVA中,()关键字用来终止循环语句。(选择一项)

a) return

b) continue

c) break

d) exit

答案:C31)给定java代码,如下,编译运行后,结果是0。(选择一项)

10 / 21

public class Test{

static String s;

public static void main(String args[]) {

char c=

(0) ; n(c) ; }}

a)编译错误

b)运行期异常,异常类型为NullPointerException

c)运行期异常,异常类型为ArithmeticExceptioin

d)正确运行,但无输出内容

答案:B32)给定Java代码如下,关于super的用法,以下描述正确的是()。(选择一项)class C extends B {

public C() {

super() ; } }

a)用来调用类B中定义的super()方法

b)用来调用类C中定义的super()方法

c)用来调用类B的无参构造方法

d)用来调用类B中第一个出现的构造方法

答案:C33)分析如下JAVA代码片段,输出结果为() . (选择一项)

int price = 10;

int number=0;

int monney =0;

11 / 21

for(int i=0;i <2;i++){

number++;

--price;

monney +=number*price;}n(monney) ;

a) 25b) 28c) 31d) 30

答案:A34)研究下面的Java代码,当switch ( x) {

case1: n

(1) ;

case2:

case3: n

(3) ;

Case4: n

(4) ;}a)没有输出任何结果

b)输出结果为3

c)输出结果是3和4

d)输出结果是l、3和4

a) private

b) protected

c) public

d) friendly

x=2时,运行结果是12 / 21

()。选择一项) (

答案:B36)在java中,()接口位于集合框架的顶层(选择一项)

a) Mapb) Collectionc) Setd) List

答案:B37) Java中,byte数据类型的取值范围是()。(选择一项)

a )-256至255b )-255至255

c )-128至127d )-127至128

答案:C38)给定java代码如下,编译运行后,输出结果是()(选择一项)。

public class test {

static int i;

public int aMethod() {

i++;

return i;}public static void main (String args[]) {

Test test=new Test() ;

d () ;

n (d()) ;

} }

a) 0b) 1c) 2d) 3

答案:C39)在Java中,JDBC API定义了一组用于与数据库进行通信的接口和类,它们包括在()包中。(选择一项)

a)

b)

c)

d)

13 / 21

答案:B40)在Java的异常处理中,用户字定义的异常类应该是()的子类。(选择一项)a) Exception

b) Throwable

c) Error

d) RuntimeException

答案:A41)在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用()关键字来声明父类的这些方法。(选择一项)

a) final

b) static

c) abstract

d) void

答案:C42)在Java中,下面关于变量及其作用域的描述错误的是()。(选择一项)

a)实例变量是类的成员变量

b)实例变量用关键字static声明

c)在方法中定义的局部变量在该方法被执行时创建

d)局部变量在使用前必须被初始化

答案:B43)在JAVA中,无论测试条件是什么,下列()循环将至少执行一次。(选择一项)a) for

b) do…while

c) while

d) while…do

14 / 21

答案:B44)分析下面这段Java代码,它的运行结果是()。(选择一项)

import .*;

public class B{

public static void main(String[]args) {

int i=12;

n(i*=++i) ;}}

a) 145

b) 169

c) 156

d)程序无法编译

答案:C二.多选题

1、下面有关变量及其作用域的陈述哪些是对的?()

A、在方法里面定义的局部变量在方法退出的时候被撤销。

B、局部变量只在定义它的方法内有效。

C、在方法外面定义的变量(即实例变量)在对象被构造时创建。

D、在方法中定义的方法的参变量只要该对象被需要就一直存在。

解答:

ABC

2.下面关于Java语言说法正确的是()。

A、Java语言是面向对象的、解释执行的网络编程语言。

B、Java语言具有可移植性,是与平台无关的编程语言。

15 / 21

C、Java语言可对内存垃圾自动收集。

D、Java语言编写的程序虽然是“一次编译,到处运行”,但必须要有Java的运行环境。

解答:

ABCD

3、下面哪几个函数是public void example(){...}的重载函数?()

A、public void example( int m){...}

B、public int example(){...}

C、public void example2(){...}

D、public int example ( int m, float f){...}

解答:

AD

class Example{

public static void main (String args [] ) {

String s1 = "abc";

String s2 = new String("abc");

if (s1 == s2){

System . out . println

(1);

}else{

System . out . println

16 / 21

(2);}if (s1 . equals (s2)){

System . out . println

(3);

}else{

System . out . println

(4);}}}请选择所有正确

答案:

A、打印输出1

B、打印输出2

C、打印输出3

D、打印输出4

答案:

BC

5.在下面代码中x为何值时输出结果为“out2”?()switch(x){

case 1:n("out1");break;

case 2:

case 3:n("out2");break;

default:

n("end");}

A、1B、

17 / 21

2C、3D、default

解答:

BC

6.有关线程的哪些叙述是对的()

A、一旦一个线程被创建,它就立即开始运行。

B、使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。

C、当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。

D、一个线程可能因为不同的原因停止并进入就绪状态。

答案:

BCD

7.下面哪几项在编译时候,会出现错误提示?()

A、int a=nt(abc789);

B、int a=(int)'我';

C、int a=int('我');

D、int a=nt('a');

解答:

ACD

8.请问,执行int[]x=new int[25];语句后,以下哪些选项正确?

请选择所有正确

答案:

18 / 21

A、x[24]值等于0。

B、x[24]值未确定。

C、x[25]值等于0

D、x[25]值等于null。

E、值等于25。

答案:

AE

9. Java接口的修饰符可以为()

A privateB protectedC finalD abstract

答案:

CD

10.请选出合理的标识符

A、_sys1_lll

B、2mail

C、$change

D、class

答案:

AC

三.简答题

1.请简述final,finally,finalize的区别

答:

19 / 21

final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载

finally—在异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)

finalize—方法名。Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

()和wait()方法有什么区别?

答:

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态

{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

答:

会执行,在return前执行。

中的GC是什么?为什么要有GC?

答:

20 / 21

GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法

中当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

答:

是值传递。Java编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

21 / 21