面试不难,基础为主,但要工资高需要加强自己能力主要是问java的基础,servlet,spring, strtus这些熟悉就基本没有问题了。
一些基础的问题我就不谈了,这些不懂就别去面了。
如果要拿高点的工资,你需要了解数据库隔离级别,map底层结构,spring aop原理。优化,js等。
后来我要的工资较高所以《深入理解Java虚拟机:JVM高级特性与最佳实践》过来面试,他问的都比较难,记得这么几个问题:
问题1:两个list,一个1万个元素,一个10个元素,查找一个元素它们的性能差多少?
答:java中元素采用hashcode的散列表存储,首先先通过元素的hashcode确定在散列表中的那条链上,再遍历链找到元素,每个链最多16个元素,所以性能相差只有20%-30%
问题2:spring中什么时候回滚事务?我要在某些异常才回滚事务,某些不回滚事务。
Spring AOP原理,Spring在产生异常的时候回滚事务,我们可以在@Transaction 标签中配置,哪些有异常回滚,哪些不会滚。
问题3、数据库隔离层,oracle的隔离层是如何的?详细区别。
四层(脏读取,读写提交,可重复读,序列化),区别大家度娘吧,实在太多,他问得很细。oracle支持读写提交和序列化两种。
问题4、js覆盖父类的方法,如何访问父类的方法。
js不熟悉,没回答。
问题5:排序算法的性能表达,大O(n)
问了我快速排序,我直接拿最差的大O(n^2)回答,这个是可以的,当然准确的应该是 O(n*lg(n))。
笔者JS不熟,所以没拿到很高的工资,不过答成那样也被录用了。
面试感受:很好;面试难度:困难;面试来源:社会招聘
共1个问题,1条回答
Q:问题6、性能优化。(1)表的数据少,读写频繁的 (2)表数据量大,读写不频繁的如何优化。