引人深思的java面试题

1. 使用 JDBC 时一般会有一句 Class.forName("xxx.xxx.xxx.xxx"); 的代码,问一下这句代码有什么作用?这行代码需要在每次获取 Connection 时都需要写么?
或:1. 为什么 JDBC 规范称从 javax.sql.DataSource 对象是获取连接的首选方法(javax.sql.DataSource 的 API 文档上有说),而不是从 java.sql.DriverManager 获取是首先方法?

目的:JDBC 是各种 ORM 工具的基础,而这两个问题是 JDBC 的基础


2. 如果让你设计一个数据库连接池,你可能会考虑到哪些方面的问题?

目的:考查对于类库设计时,能考虑到问题的深度和广度


3. 在 JDK 1.4 中引入了一个 NIO 的类库,使得 Java 涉及 IO 的操作拥有阻塞式和非阻塞式两种,问一下阻塞 IO 与非阻塞 IO 有什么区别?有什么优缺点?

目的:网络编程的概念问题


4. 简单地说一下使用 JDK 工具 javadoc 生成的 API 文档主要包括哪些内容?
或:4. 我们都知道 keySet() 是 java.util.Map 中的一个方法,通过 HTML 版本的 J2SE API 文档你能否找出所有含有 keySet 方法的类和接口呢?

目的:Java API 文档是 Java 开发人员最常使用的文档,掌握 API 文档的使用非常有必要


5. J2SE 的 API 中没有提供实现 LRU 算法的 Map 数据结构,如果让你实现一个 LRU 算法的 Map 你会怎么做?(LRU, least recently used 最近最少被使用。指的是在固定容量的容器中,在容量达到上限时且有新的数据需要放进来时,将最不常使用的那条数据移除,以腾出空位给新数据的算法。)

目的:考查对于类库的熟悉程度


6. JDK 5 中增加了很多语言特性,比如说可变参数就是其中之一,问一下可变参数你感觉在什么地方可能会被用到?

目的:考查对于 JDK 中新增语言特性的掌握程度,并能否灵活运用


7. 锁是具有可重入性的,能否说一下什么是锁的可重入性?如果不具有重入性,那会出现什么样的问题?
或:7. 简单地说一下读写锁中读锁和写锁有什么特点,他们是如何保护共享变量的?读写锁可以应用于什么样的代码之中?

目的:锁是并发编程中最为重要的问题的,考查一下对于锁的认识。读写锁在读取数据方面相较于独占锁来说性能较高,考查对于并发编程的能力。


8. 能否简单地说一下开发过程中使用诸如 CVS、SVN、VSS、Git 等版本管理工具有什么好处?

目的:考查开发人员是否有团队合作及开发经验


9. 我们写代码时一般都会在代码中嵌入日志,能否谈一下在代码中的日志编写过程中有什么使用心得?

目的:考查开发人员对于日志是否足够重视,是否能灵活使用日志工具


10. 结束题

a. 很多软件都会给不同的版本取个名字,你知道 JDK 各种版本的名字有哪些?比如 JDK 5 叫 Tiger。

目的:知识面问题,了解一下开发人员知识的广度


b. JDK 中有很多工具,比如 javac 是 Java 的编译器工具,你能否说一下 JDK 中还有哪些工具,那些工具主要是干什么用的?

目的:JDK 的 bin 目录中有 40 余种工具,掌握一下对于 JDK 工具的了解程度
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值