陆小曼|30道Java笔试题精选(附答案解析)
都是一些非常基础的题 , 是我最近参加各大IT公司笔试后靠记忆记下来的 , 纯考Java基础功底 , 但是IT公司就喜欢考这些基础的东西 , 所以为了能进大公司就~当复习期末考吧 。 花了不少时间整理 , 在整理过程中也学到了很多东西 , 请大家认真对待每一题!
下面都是我自己的答案 , 非官方 , 仅供参考 , 如果有疑问或错误请一定要提出来 , 大家一起进步~
由于篇幅有限 , 以下只展示小部分 , 需要完整版及更多相关资料的朋友可以私信回复 “ 源码 ” 找我免费领取!
1. 下面哪些是Thread类的方法()
A start() B run() C exit() D getPriority()
答案:ABD
解析:exit()是System类的方法 , 如System.exit(0) 。
2. 下面关于java.lang.Exception类的说法正确的是()
A 继承自Throwable B Serialable CD 不记得 , 反正不正确
答案:A
解析:Java异常的基类为java.lang.Throwable , java.lang.Error和java.lang.Exception继承 Throwable , RuntimeException和其它的Exception等继承Exception , 具体的RuntimeException继承RuntimeException 。 扩展:错误和异常的区别(Error vs Exception)
1) java.lang.Error: Throwable的子类 , 用于标记严重错误 。 合理的应用程序不应该去try/catch这种错误 。 绝大多数的错误都是非正常的 , 就根本不该出现的 。 java.lang.Exception: Throwable的子类 , 用于指示一种合理的程序想去catch的条件 。 即它仅仅是一种程序运行条件 , 而非严重错误 , 并且鼓励用户程序去catch它 。
2) Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions) , 而所有其他的Exception类都是检查了的异常(checked exceptions).checked exceptions: 通常是从一个可以恢复的程序中抛出来的 , 并且最好能够从这种异常中使用程序恢复 。 比如FileNotFoundException, ParseException等 。 检查了的异常发生在编译阶段 , 必须要使用try…catch(或者throws)否则编译不通过 。 unchecked exceptions: 通常是如果一切正常的话本不该发生的异常 , 但是的确发生了 。 发生在运行期 , 具有不确定性 , 主要是由于程序的逻辑问题所引起的 。 比如ArrayIndexOutOfBoundException, ClassCastException等 。 从语言本身的角度讲 , 程序不该去catch这类异常 , 虽然能够从诸如RuntimeException这样的异常中catch并恢复 , 但是并不鼓励终端程序员这么做 , 因为完全没有必要 。 因为这类错误本身就是bug , 应该被修复 , 出现此类错误时程序就应该立即停止执行 。因此 , 面对Errors和unchecked exceptions应该让程序自动终止执行 , 程序员不该做诸如try/catch这样的事情 , 而是应该查明原因 , 修改代码逻辑 。
RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等 。
处理RuntimeException的原则是:如果出现 RuntimeException , 那么一定是程序员的错误 。 例如 , 可以通过检查数组下标和数组边界来避免数组越界访问异常 。 其他(IOException等等)checked异常一般是外部错误 , 例如试图从文件尾后读取数据等 , 这并不是程序本身的错误 , 而是在应用环境中出现的外部错误 。
3. 下面程序的运行结果是()
String str1 = "hello";
String str2 = "he" + new String("llo");
System.err.println(str1 == str2);
答案:false
解析:因为str2中的llo是新申请的内存块 , 而==判断的是对象的地址而非值 , 所以不一样 。 如果是String str2 = str1 , 那么就是true了 。
推荐阅读
- 小机灵鬼|干货速来!透彻剖析微服务架构设计模式,深入开发Java有奇效
- Java|计算机专业的本科生,该选择学习Java技术体系还是.NET技术体系
- 知足常乐|Java线程池原理,这一篇就够了
- 小熊回收站|-链表阻塞队列和数组阻塞队列的异同,Java并发编程
- 陆小曼|华为:值得信赖和拥有!给华为客服点一万个赞!愿继续力挺华为!
- 陆小曼|彭博社爆料 iPhone 12 新机信息,iPad Air 4 最新渲染图曝光
- Java|马化腾登顶中国首富,微信、QQ却都免费使用,腾讯到底咋赚钱的?
- 陆小曼|抗光出色——菲斯特画卷光学屏S1,安装简单
- 陆小曼|安装简单,抗光出色——菲斯特画卷光学屏S1
- 陆小曼|介绍开通方法,你能有多少额度?,微信版“花呗”上线了
