您的位置:首页 > 职场人生

某互联网门户公司面试

2016-03-06 14:17 232 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/suparPeng/article/details/84768649 前两天去某互联网门户公司面试java后台开发职位,面试题目如下:

1 添加索引后如何知道查询是否命中了索引?
这个问题,我平时没有关注过,回答说如果添加索引后查询时间明显缩短那就命中索引了。面试官不满意,他提示数据库查询有缓存,同一sql语句,第二次查询会比第一次快,这不能表示命中索引。后来,在网上搜了一下,可以通过查看sql的执行计划。

2 如果在A,B,C三个字段建了联合索引,问where A='value',是否会命中索引?
我说不会。因为我觉得关键字是由A、B、C三个字段值组成的,应该是对(A,B,C)做的排序。网上查了一下,才知道这种情况其实是可以命中索引的。因为对(A,B,C)排序,可以保证A是有序的,虽然B、C是无序的。例如(1,9,2),(2,5,7)(2,1,3),(1,6,4),排序结果为:(1,6,4),(1,9.2),(2,1,3),(2,5,7)。参考:http://blog.csdn.net/shellching/article/details/7655793

3 索引的数据结构?
我说是一种多路查找树,我确实不记得是具体是什么树了。面试官接着问,具体是哪种树。没办法,我瞎蒙说是红黑树。又问查找的时间复杂度,我答应该是O(树高)。翻了一下数据结构教材,索引的结构是B树。B树的介绍可以参考:http://blog.csdn.net/v_JULY_v/article/details/6530142/

4 不同的Java内存管理方案的优缺点?
面试时没有打出来。搜了一下,面试官应该是想问CMS和Parallel两种gc算法。可以参考:http://www.deepinmind.com/gc/2014/05/01/g1-vs-cms-vs-parallel-gc.html

5 servlet是单例的吗?
我说是。又问,那怎么保证线程安全?我说尽量让servlet无状态,不要声明静态域和实例域。现在想想,回答的不够全,如果确实需要静态域和实例域的话,可以使用同步机制,通过加锁来保证正确性。上网查了一下,其实说servlet是单例是不准确的,严格地说是一个ServletMapping对应一个单例实例,如果一个Servlet被映射了两个URL地址,会生成两个实例。

6 tomcat容器包含哪些模块?如何自己实现一个web 容器?
这个真不会啊。

先写这么多,想起别的来再补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: