Java基础笔试练习(三)

int i = 100 / 0;

System.out.print(i);

}catch(Exception e){

System.out.print(1);

throw new RuntimeException();

}finally{

System.out.print(2);

}

System.out.print(3);

}

}

A.3

B.123

C.1

D.12

答案:

D

解析:

1、inti = 100/ 0; 会出现异常,会抛出异常,System.out.print(i)不会执行,

2、catch捕捉异常,继续执行System.out.print(1);

3、当执行 thrownewRuntimeException(); 又会抛出异常,这时,除了会执行finally中的代码,其他地方的代码都不会执行

8.以下代码将打印出?


public static void main(String args[]) {

List Listlist1 = new ArrayList();

Listlist1.add(0);

List Listlist2 = Listlist1;

System.out.println(Listlist1.get(0) instanceof Integer);

System.out.println(Listlist2.get(0) instanceof Integer);

}

A.编译错误

B.true true

C.true false

D.false false

答案:

B

解析:

collection类型的集合(ArrayList,LinkedList)只能装入对象类型的数据,该题中装入了0,是一个基本类型,但是JDK5以后提供了自动装箱与自动拆箱,所以int类型自动装箱变为了Integer类型。编译能够正常通过。

将list1的引用赋值给了list2,那么list1和list2都将指向同一个堆内存空间。instanceof是Java中关键字,用于判断一个对象是否属于某个特定类的实例,并且返回boolean类型的返回值。显然,list1.get(0)和list2.get(0)都属于Integer的实例

9. 在运行时,由java解释器自动引入,而不用import语句引入的包是()。


A.java.lang

B.java.system

C.java.io

D.java.util

答案:

A

解析:

ava.lang包是java语言包,是自动导入的。

java.util包是java的工具包,需要手动导入。

java.sql包,JDBC接口类,需要手动导入。

java.io;各种输入输入流,需要手动导入。

10.下面这三条语句


System.out.println(“is ”+ 100 + 5);

System.out.println(100 + 5 +“ is”);

System.out.println(“is ”+ (100 + 5));

的输出结果分别是? ( )

A.is 1005, 1005 is, is 1005

B.is 105, 105 is, is 105

C.is 1005, 1005 is, is 105

D.is 1005, 105 is, is 105

答案:

D

解析:

1."is"说明后面的内容都会被强制转换为string,所以是最后结果是拼接起来的

2.100+5先得到105,然后与is拼接

3.先算括号内的

11.Given:


public class IfTest{

public static void main(string[]args){

int x=3;

int y=1;

if(x=y)

System.out.println(“Not equal”);

else

System.out.println(“Equal”);

}

}

What is the result?

A.The output is “Equal”

B.The output in “Not Equal”

C.An error at line 5 causes compilation to fall.

D.The program executes but does not print a message.

答案:

C

解析:

这个题考查两个知识点。

1、Java中,赋值是有返回值的 ,赋什么值,就返回什么值。比如这题,x=y,返回y的值,所以括号里的值是1。

2、Java跟C的区别,C中赋值后会与0进行比较,如果大于0,就认为是true;而Java不会与0比较,而是直接把赋值后的结果放入括号。

12.在一个基于分布式的游戏服务器系统中,不同的服务器之间,哪种通信方式是不可行的()?


A.管道

B.消息队列

C.高速缓存数据库

D.套接字

答案:

A

解析:

管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

13.下列程序的运行结果


public void getCustomerInfo() {

try {

// do something that may cause an Exception

} catch (java.io.FileNotFoundException ex) {

System.out.print(“FileNotFoundException!”);

} catch (java.io.IOException ex) {

System.out.print(“IOException!”);

} catch (java.lang.Exception ex) {

System.out.print(“Exception!”);

}

}

A.IOException!

B.IOException!Exception!

C.FileNotFoundException!IOException!

D.FileNotFoundException!IOException!Exception!

答案:

A

解析:

题目说抛出一个异常,但是没说具体是什么异常,那么就要分情况了:

1.如果抛出一个FileNotFoundException(或其子类),那么最终结果就打印FileNotFoundException

2.如果抛出一个IOException,或者IOException的子类(不包含FileNotFoundException及其子类),那么最终结果就打印IOException

3.如果抛出一个Exception(不包含IOException及其子类),那么最终结果就打印Exception.

以上,所以3个皆有可能.但是,不管是哪一种情况,只会输出其中之一。

从答案上来看,B,C,D的输出情况是不存在的。因此选A

14.如下代码的输出结果是什么?


public class Test {

public int aMethod(){

static int i = 0;

i++;

return i;

}

public static void main(String args[]){

Test test = new Test();

test.aMethod();

int j = test.aMethod();

System.out.println(j);

}

}

A.0

B.1

C.2

D.编译失败

答案:

D

解析:

静态变量只能在类主体中定义,不能在方法中定义

15.下面有关servlet和cgi的描述,说法错误的是?


A.servlet处于服务器进程中,它通过多线程方式运行其service方法

B.CGI对每个请求都产生新的进程,服务完成后就销毁

C.servlet在易用性上强于cgi,它提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等

D.cgi在移植性上高于servlet,几乎所有的主流服务器都直接或通过插件支持cgi

答案:

D

解析:

选择D,servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

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


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

B.java语言规定构造方法没有返回值,但不同void声明

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

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

答案:

CD

解析:

关于答案d,通过this也可以调用

17.What is Static Method in Java()


A.It is a method which belongs to the class and not to the object(instance)

B.A static method can access only static data. It can not access non-static data (instance variables)

C.A static method can call only other static methods and can not call a non-static method from it.

D.A static method can not be accessed directly by the class name and doesn’t need any object

答案:

ABC

解析:

A:静态方法是一个属于类而不属于对象(实例)的方法。(√)

B:静态方法只能访问静态数据。无法访问非静态数据(实例变量)。(√)

C:静态方法只能调用其他静态方法,不能从中调用非静态方法。(√)

D:静态方法不能通过类名直接访问,也不需要任何对象。(×) 静态方法可以直接用类名访问。

18.下列哪种情况会调用拷贝构造函数()


A.用派生类的对象去初始化基类对象时

B.将类的一个对象赋值给该类的另一个对象时

C.函数的形参是类的对象,调用函数进行形参和实参结合时

D.函数的返回值是类的对象,函数执行返回调用时

答案:

A C D

解析:

复制构造函数被调用的三种情况

1.定义一个对象时,以本类另一个对象作为初始值,发生复制构造;

2.如果函数的形参是类的对象,调用函数时,将使用实参对象初始化形参对象,发生复制构造;

3.如果函数的返回值是类的对象,函数执行完成返回主调函数时,将使用return语句中的对象初始化一个临时无名对象,传递给主调函数,此时发生复制构造。

19.Java对象的初始化方式有( )


A.初始化块

B.构造器

C.定义变量时指定初始化值

D.其它各项都不对

答案:

A B C

解析:

对象的初始化方式:

1.new时初始化 ;

2.静态工厂 newInstance;

3.反射Class.forName();

4.clone方式;

5.反序列化;

20.截止JDK1.8版本,java并发框架支持锁包括?


A.读写锁

B.自旋锁

C.X锁

D.乐观锁

E.排他锁

答案:

A B D

解析:

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

解析:

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-HqoBxeRl-1715728704844)]

[外链图片转存中…(img-7ebcJQB4-1715728704844)]

[外链图片转存中…(img-mPT1aBbK-1715728704844)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值