记得当初是接到电话后,就开始了技术面试:
大概问了如下的问题:
1.==,equals,hashcode区别,热身的问题
2.final,finally,finalize的区别,final关键字的注意点以及用法需要详细,特别注意 final 在多线程中的用处;final修饰的变量可以保证立即可见,那么保证立即可见的办法还有那些?(synchornized,volatile,volatie);此刻面试官会就synchornized关键字,问他保证线程安全的相关知识,以及保证线程安全,lock锁,以及可重写锁 当然,本人在lock以及他的实现回答的比较片面
3.StringBuilder,StringBuffer,String的区别?
介绍三者,然后总结三者的效率,以及三者在什么情况下使用比较合适,StringBuffer为什么是线程安全的?synchronized关键字的修饰使得他线程安全,这时如果前面没有问线程安全,lock,synchronized,volatile,lock以及可重写锁会来轰炸
4.堆和栈的区别?
5.集合一定会问,集合的区别,什么时候使用集合,哪些集合实时线程安全的,
6.java内存:栈溢出(StackOverflowError)与 堆溢出(OutOfMemoryError:java heap space)
7.数据库:mysql,索引,存储引擎,锁,所用的数据结构,这方面当初就只回答了大概;
8.二面考察的是jvm的内存概念,sql优化
网友评论