java终极面试题目总结

来源:互联网 发布:贵州省人口老龄化数据 编辑:程序博客网 时间:2024/06/05 09:03

声明:本博客所有的文章都是本人原创,绝不会抄袭任何人,所以,请转载后,一定要标注出处,谢谢。

目前,我面试了好多人,大家在面试过程中,我总结了,10个人,有8个人说擅长SSM(spring+springmvc+mybatis),2个人会说SSH。说实话,没有亮点,我都不愿意继续问下去。稍微牛bi一点的人呢,会写项目用过阿里云的数据库,各种搜索引擎,反正就是好多高大上的东西,然后问他,在项目中你负责做哪块,他告诉你,写写文档,然后调用别人写好的接口来开发。我当时就笑了,你说你,项目很强大,但自己啥也没做。真是醉了。

由于我每半年都会出去投简历被别人面试,通过这种方式来提高自身的不足。所以也总结了,别人的提问。

1.集合框架Set为什么会自动去重?

此题目的在于检验你是否有阅读源码的习惯。答:因为底层源码重写了equals和hashCode方法。

2.什么是IOC和AOP,说说你自己的理解?

答:控制反转,把原本是你自己要干的活交给别人去做,然后把反馈结果拿到去交差。面向切面编程,把公共的部分提取出来,一起使用。

3.事物的特性?

答:ACID,原子性,持久性,一致性,隔离性。

4.mybatis如何批量执行?

答:它并没有批量执行的方法,但是在XML里有个循环标签来代替批量执行。

5.mybatis的取值方式是什么?有何不同?

答:‘$’符号和‘#’号。美元符号具有SQL注入的风险。

6.ArrayList和Vector区别?(网上有,不说了)

7.你是如何处理高并发的?

答:动态页面静态化;制作散列表;加缓存;镜像;负载均衡;产生并发大的服务单独部署;使用线程池和连接池来管理程序。

8.有一个方法,里面有一堆数0到N,现在给该方法传递一个参数(数字),让你在这方法里面写程序判断它是否存在这堆数中,若在,请返回它所在的位置,如何用最效率的方式查询出来。

答:把这堆数截成N段,开启N个线程,同时异步读取各段的数。

9.如何同步一个线程?

答:使用synchronized关键字或者ReenTrantLock类或者ThreaLocal或者采用ExecutorService接口进行异步编程。

10.如何进行JVM调优?

答:eclipse的时候,要找到eclipse.ini文件,更改里面的Xmx和Xms。tomcat的时候,要找到catalina.sh和server.xml更改JAVA_OPTS的值(没有就自己填)和Connector标签。

11.为什么使用线程池和连接池?

答:因为它们每次使用都会进行创建,完事再关闭,十分占用开销。有了池,就只会创建一次。


以上便是问的最多的选项。俾人认为,靠死记硬背不是方法,要学会领悟,是的,多么痛的领悟,你是我的全部。。。希望上述能对广大同行予以帮助,谢谢。

这是我写的第三篇文章,愿我微不足道的力量与您一同成长。

原创粉丝点击