Java初级开发面试题及答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Java初级开发面试题及答案

一、选择题(10题)

下列关于String的说法,正确的是()

A.String是可变的,修改后会生成新对象

B.String是不可变的,底层由final修饰的char数组实现

C.String拼接推荐用“+”号,效率比StringBuilder高

D.String可以被继承,因为它没有被final修饰

答案:B

解析:String被final修饰,不能继承,底层char数组也是final,所以不可变(修改时会新生成对象);“+”号拼接在编译时会转为StringBuilder,但循环拼接时每次都会新建,效率低,实际开发中循环拼接建议直接用StringBuilder。

以下哪种集合是线程安全的()

A.ArrayList

B.HashMap

C.Hashtable

D.LinkedList

答案:C

解析:ArrayList、HashMap、LinkedList都是线程不安全的;Hashtable通过synchronized修饰方法保证线程安全,但效率低,现在多推荐用ConcurrentHashMap(JDK1.8后用CAS+synchronized,效率更高)。

关于面向对象的“继承”,下列说法错误的是()

A.子类可以继承父类的非private成员(属性和方法)

B.子类可以重写父类的方法,但不能改变方法的返回值类型(除协变返回)

C.Java支持多继承,一个子类可以有多个父类

D.子类构造方法中,默认会调用父类的无参构造(若父类无无参构造,需显式调用super())

答案:C

解析:Java不支持多继承,只能单继承,但可以通过实现多个接口间接实现“多继承”的效果。

下列关于异常的说法,正确的是()

A.异常分为Checked异常和Unchecked异常,NullPointerException属于Checked异常

B.try-catch-finally中,finally块一定会执行(除非JVM退出,如System.exit())

C.catch块可以捕获父类异常后,再捕获子类异常(顺序不影响)

D.throw用于声明方法可能抛出的异常,throws用于手动抛出异常对象

答案:B

解析:NullPointerException是RuntimeException的子类,属于Unchecked异常(无需强制捕获);catch块需先捕获子类异常再捕获父类异常,否则子类异常会被父类异常捕获,编译报错;throws用于声明异常,throw用于抛出具体异常对象。

下列代码执行后,输出结果是()

publicclassTest{

publicstaticvoidmain(String[]args){

inta=10;

Integerb=10;

System.out.println(a==b);

}

}

A.true

B.false

C.编译错误

D.运行时异常

答案:A

解析:这里发生了“自动拆箱”,Integer类型的b会自动转为int类型,和a比较值,所以结果为true;若b是newInteger(10),则==比较地址,结果为false(但Integer缓存了-128~127的对象,直接赋值Integerb=10会复用缓存对象)。

关于ArrayList和LinkedList的区别,错误的是()

A.ArrayList底层是数组,查询快(通过索引直接访问),增删慢(需移动元素)

B.LinkedList底层是双向链表,查询慢(需遍历),增删快(只需修改指针)

C.ArrayList支持随机访问,LinkedList不支持

D.两者都是线程安全的,可在多线程环境直接使用

答案:D

解析:ArrayList和LinkedList都线程不安全,多线程下需加锁(如Collections.synchronizedList())或用CopyOnWriteArrayList。

下列关于static关键字的说法,错误的是()

A.static修饰的属性属于类,不属于对象,所有对象共享该属性

B.static修饰的方法不能访问非static属性(因为非static属性属于对象,需先创建对象)

C.static方法可以被重写(Override)

D.static代码块在类加载时执行,只执行一次,用于初始化静态属性

答案:C

解析:

您可能关注的文档

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档