前言
在接触 Java 之前我接触的比较多的语言就是C和C++,对Java语言的学习也有稍有的涉猎。到了今年疫情,在竞争的压力下,我才选择正式改行 Java ,到目前为止接触Java大概有一年多的时间,所以Java开发水平算不上很好。
刚开始投递的时候,我并没有直接就投递阿里,毕竟心里还是有一点点小害怕的。于是,我就先投递了几个不算大的公司来练手,就是想着刷刷经验而已或者说是练练手。面了一个月其他公司后,我找了一个博主的朋友帮助内推,就有了后面这次面试。
面试阿里之前我对自己的并发知识不太有信心,就花时间看了几本并发方面的书籍,网上也找了好多博客来看。
下面简单的说一下我的这5次面试:4次技术面+1次HR面,希望我的经历能对你有所帮助。
一面(技术面)
- 自我介绍(主要讲自己会的技术细节,项目经验,经历那些就一语带过,后面面试官会问你的)。
- 聊聊项目(就是一个很普通的分布式商城,自己做了一些改进),让我画了整个项目的架构图,然后针对项目抛了一系列的提高性能的问题,还问了我做项目的过程中遇到了那些问题,如何解决的,差不多就这些吧。
- 可能是我前面说了我会数据库优化,然后面试官就开始问索引、事务隔离级别、悲观锁和乐观锁、索引、ACID、MVVC这些问题。
- 浏览器输入URL发生了什么? TCP和UDP区别? TCP如何保证传输可靠性?
- 讲下跳表怎么实现的?哈夫曼编码是怎么回事?非递归且不用额外空间(不用栈),如何遍历二叉树
- 后面又问了很多JVM方面的问题,比如Java内存模型、常见的垃圾回收器、双亲委派模型这些
- 你有什么问题要问吗?
二面(技术面)
-
<