前言
由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目。
经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑、痛苦自不必说,知道被录取的那一刻,一整年的阴霾都一扫而空了。
笔者面的是阿里的Java研发工程师岗,面试流程是4轮技术面+1轮hr。
文末可以获取面试资料参考
阿里巴巴Java岗面试题分享
1.HashMap 的内部结构?内部原理?和 HashTable 的区别,假如发⽣了 hash 碰撞,如何设计能让遍历效率⾼?
2.讲一讲讲讲 ConcurrentHashMap吧。
3.讲一下JVM虚拟机内存结构,以及它们的作⽤。
4.讲讲JVM的类加载过程&&双亲委派模型。
5.谈谈Java的垃圾回收算法。
6.谈谈Java垃圾回收的触发条件。
7.synchronized和Lock的区别。
8.volatile的作⽤,为什么会出现变量读取不⼀致的情况,与 synchronized 的区别?
9.++i 在多线程环境下是否存在问题,怎么解决?
10.讲一讲Thread.sleep() 和 Thread.yield() 区别?
11.讲讲常⽤的容器类?
12.如何去除 ArrayList 的重复元素?
- 直接采⽤ HashSet 即可。作为它的参数,然后再 addAll。但这种⽅式不能保证原来的顺序,如果要求顺序,可以使⽤ LinkedHashSet 即可。
13.讲讲 Java 的泛型擦除,泛型主要是为了解决什么问题?如何⽤泛型做 Json 的解析的?
14.谈谈 Java 的 Error 和 Exception 的区别联系。
- Error 和 Excepti