java终极面试题目总结
2017-07-25 21:44
134 查看
声明:本博客所有的文章都是本人原创,绝不会抄袭任何人,所以,请转载后,一定要标注出处,谢谢。
目前,我面试了好多人,大家在面试过程中,我总结了,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.为什么使用线程池和连接池?
答:因为它们每次使用都会进行创建,完事再关闭,十分占用开销。有了池,就只会创建一次。
以上便是问的最多的选项。俾人认为,靠死记硬背不是方法,要学会领悟,是的,多么痛的领悟,你是我的全部。。。希望上述能对广大同行予以帮助,谢谢。
这是我写的第三篇文章,愿我微不足道的力量与您一同成长。
目前,我面试了好多人,大家在面试过程中,我总结了,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.为什么使用线程池和连接池?
答:因为它们每次使用都会进行创建,完事再关闭,十分占用开销。有了池,就只会创建一次。
以上便是问的最多的选项。俾人认为,靠死记硬背不是方法,要学会领悟,是的,多么痛的领悟,你是我的全部。。。希望上述能对广大同行予以帮助,谢谢。
这是我写的第三篇文章,愿我微不足道的力量与您一同成长。
相关文章推荐
- java面试题目总结
- java基础~第一次技术测试题目总结
- 黑马程序员 java 基础面试常考题目总结
- 面试大总结之二:Java搞定面试中的二叉树题目
- 牛客网做题总结:剑指offer中题目,java版二
- 面试中所有二叉树题目总结(java版)
- 面试大总结之一:Java搞定面试中的链表题目
- Java学习----day6——(2)面对对象程序设计总结【题目详解】
- 牛客网做题总结:剑指offer中题目,java版三
- 面试大总结:Java搞定面试中的链表题目总结
- java常见题目总结
- Java笔试题目总结二(牛客网)
- Java面试题目总结
- (转)面试大总结之一:Java搞定面试中的链表题目
- java传智播客入学题目总结
- java基础题目总结
- 面试大总结之一:Java搞定面试中的链表题目
- JAVA面试易错题目总结(一)
- Java 面试题目总结
- Java面试题目总结