Java 面试题(A)——Java SE

时间:2021-08-20 21:02:36
大家好:

很久没在技术区发过帖子了。看到很多人比较喜欢看面试题之类的帖子,趁着有空我也草拟了几道题目跟大家一起分享(过过面试官的隐,哈哈)。问题均为自创,如有雷同,实属巧合(老套,汗一把)。

题目主要以 Java 中的基础为主。但不会出现 new String 产生了多少个对象,Collection 与 Collections 有什么区别之类的题目。

作为试验性质(并不是真正的面试题),大多数都是主观题。


----------- 我 - 是 - 废 - 话 - 与 - 正 - 文 - 之 - 间 - 的 - 分 - 隔 - 符 -----------

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 工具的了解程度

656 个解决方案

#1


这样的题目比较适合我,呵呵。

#2


引用 1 楼 zangxt 的回复:
这样的题目比较适合我,呵呵。


谢谢支持。

10 道题目,涉及面有限,呵呵

#3


题目还是有些深度的 受用了哈!

#4


JDBC 4 之前的 需要 Class.forName(.........)。

#5


引用 4 楼 huntor 的回复:
JDBC 4 之前的 需要 Class.forName(.........)。


嗯,从 JDBC 4 使用了 J2EE 中的 Service Provider 机制,在支持 JDBC 4.0 规范的 JDBC 驱动 jar 的 META-INF 中加了东西。使用时会自动搜寻 classpath 中 META-INF/services 以及 classpath 中所有 jar 的 META-INF/services 目录里文件名为 java.sql.Driver 的文件,使用这个文件中的数据来加载 JDBC 驱动。

#6


这贴要顶!

#7


mark下

果果的题目有点意思 明天上班看。

#8


不发答案吗?。。

#9


给答案哈..

#10


支持楼主,题目比较深入哦,呵呵

#11


支持楼主,题目有深度!学学!

#12


学习了。。。先收藏。。。

#13


mark下,火龙果大哥发帖还真不常见,不过对于我这种水平来说真有难度……

#14


看看,学学,嘿嘿

#15


呵呵!很好的问题让感触良多啊!

#16


顶! Java 面试题(A)——Java SE

#17


引用 1 楼 zangxt 的回复:
这样的题目比较适合我,呵呵。

强!感觉自己能做出一半就不错了!

#18


顶,等答案

#19


该回复于2010-11-30 18:22:56被版主删除

#20


该回复于2010-12-03 10:37:22被版主删除

#21


收藏,学习,等答案。

#22


马克先 
晚上再来看

#23


有个别题能说个一二,等楼主答案

#24


学习......

#25


该回复于2010-11-22 15:37:30被版主删除

#26


学习。。。很多不会。。。

#27


我正在找工作中......看完这几题压力倍增......

#28


该回复于2010-11-22 15:37:36被版主删除

#29


该回复于2010-11-22 15:37:37被版主删除

#30


2. 如果让你设计一个数据库连接池,你可能会考虑到哪些方面的问题?
目的:考查对于类库设计时,能考虑到问题的深度和广度
a.到底是用代理还是重写close方法来实现连接的回收,
不知道apache的数据库连接池是用的哪个
b.并发的情况下如何正确分配连接
c.连接是否有效的定时检测机制,估计要起专门的线程
d.对于连接池内部的异常如何处理
e.初始化的时候数据库异常及数据库连接掉线重连
f.可配置性,例如最大连接数目等



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

目的:考查对于类库的熟悉程度
这个用类库?没想到,第一感觉是堆,优先队列


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

目的:考查对于 JDK 中新增语言特性的掌握程度,并能否灵活运用
这个。。。还真没有在程序中用到可变参数。。。
比如最近的人口普查,某人亲属身份证号码列表,
在设计方法时可以搞成可变参数,因为并不固定其有多少亲属






#31


还有一堆不会,等答案。。。

#32


强帖留名,等答案

#33


唉,学了这么久java方面的知识,原来什么都不知道啊。。。。。。

#34


我不是来接分的,看了看题也就对其中的一两个还有点了解,其他的就别说主观意思,也只有对这些东西熟悉或者熟练之后才能谈的上自己的想法。

随便问LZ一声,知识是如何学得如此深入的,刻有见解!谢谢!!!!

#35


我没有权利推荐精华贴呀! Java 面试题(A)——Java SE

#36


希望能给答案参考一下,一定会让我们受益非浅!

#37


晕,字还打错了,是受益匪浅!

#38


Java 面试题(A)——Java SE
不错不错

#39


绝妙好帖,找时间做做。

#40


该回复于2010-12-03 10:45:27被版主删除

#41


还不错的题目,可见楼主是精心准备发帖的。

#42


哈哈,太好了,我正需要这个帖子
 谢谢!

#43


mark,需要学习的还真多

#44


很是强力啊,涉及的内容果然多

#45


mark,感觉很有深度。很难

#46


该回复于2010-11-22 16:25:36被版主删除

#47


这是招什么的面试题啊我倒和我有距离啊

#48


好难~mark了再说。

#49


问的面挺广的,呵呵。学到东西了。。。

#50


楼主强悍,正在强化...

#1


这样的题目比较适合我,呵呵。

#2


引用 1 楼 zangxt 的回复:
这样的题目比较适合我,呵呵。


谢谢支持。

10 道题目,涉及面有限,呵呵

#3


题目还是有些深度的 受用了哈!

#4


JDBC 4 之前的 需要 Class.forName(.........)。

#5


引用 4 楼 huntor 的回复:
JDBC 4 之前的 需要 Class.forName(.........)。


嗯,从 JDBC 4 使用了 J2EE 中的 Service Provider 机制,在支持 JDBC 4.0 规范的 JDBC 驱动 jar 的 META-INF 中加了东西。使用时会自动搜寻 classpath 中 META-INF/services 以及 classpath 中所有 jar 的 META-INF/services 目录里文件名为 java.sql.Driver 的文件,使用这个文件中的数据来加载 JDBC 驱动。

#6


这贴要顶!

#7


mark下

果果的题目有点意思 明天上班看。

#8


不发答案吗?。。

#9


给答案哈..

#10


支持楼主,题目比较深入哦,呵呵

#11


支持楼主,题目有深度!学学!

#12


学习了。。。先收藏。。。

#13


mark下,火龙果大哥发帖还真不常见,不过对于我这种水平来说真有难度……

#14


看看,学学,嘿嘿

#15


呵呵!很好的问题让感触良多啊!

#16


顶! Java 面试题(A)——Java SE

#17


引用 1 楼 zangxt 的回复:
这样的题目比较适合我,呵呵。

强!感觉自己能做出一半就不错了!

#18


顶,等答案

#19


该回复于2010-11-30 18:22:56被版主删除

#20


该回复于2010-12-03 10:37:22被版主删除

#21


收藏,学习,等答案。

#22


马克先 
晚上再来看

#23


有个别题能说个一二,等楼主答案

#24


学习......

#25


该回复于2010-11-22 15:37:30被版主删除

#26


学习。。。很多不会。。。

#27


我正在找工作中......看完这几题压力倍增......

#28


该回复于2010-11-22 15:37:36被版主删除

#29


该回复于2010-11-22 15:37:37被版主删除

#30


2. 如果让你设计一个数据库连接池,你可能会考虑到哪些方面的问题?
目的:考查对于类库设计时,能考虑到问题的深度和广度
a.到底是用代理还是重写close方法来实现连接的回收,
不知道apache的数据库连接池是用的哪个
b.并发的情况下如何正确分配连接
c.连接是否有效的定时检测机制,估计要起专门的线程
d.对于连接池内部的异常如何处理
e.初始化的时候数据库异常及数据库连接掉线重连
f.可配置性,例如最大连接数目等



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

目的:考查对于类库的熟悉程度
这个用类库?没想到,第一感觉是堆,优先队列


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

目的:考查对于 JDK 中新增语言特性的掌握程度,并能否灵活运用
这个。。。还真没有在程序中用到可变参数。。。
比如最近的人口普查,某人亲属身份证号码列表,
在设计方法时可以搞成可变参数,因为并不固定其有多少亲属






#31


还有一堆不会,等答案。。。

#32


强帖留名,等答案

#33


唉,学了这么久java方面的知识,原来什么都不知道啊。。。。。。

#34


我不是来接分的,看了看题也就对其中的一两个还有点了解,其他的就别说主观意思,也只有对这些东西熟悉或者熟练之后才能谈的上自己的想法。

随便问LZ一声,知识是如何学得如此深入的,刻有见解!谢谢!!!!

#35


我没有权利推荐精华贴呀! Java 面试题(A)——Java SE

#36


希望能给答案参考一下,一定会让我们受益非浅!

#37


晕,字还打错了,是受益匪浅!

#38


Java 面试题(A)——Java SE
不错不错

#39


绝妙好帖,找时间做做。

#40


该回复于2010-12-03 10:45:27被版主删除

#41


还不错的题目,可见楼主是精心准备发帖的。

#42


哈哈,太好了,我正需要这个帖子
 谢谢!

#43


mark,需要学习的还真多

#44


很是强力啊,涉及的内容果然多

#45


mark,感觉很有深度。很难

#46


该回复于2010-11-22 16:25:36被版主删除

#47


这是招什么的面试题啊我倒和我有距离啊

#48


好难~mark了再说。

#49


问的面挺广的,呵呵。学到东西了。。。

#50


楼主强悍,正在强化...