支付宝的社招面试经历(Java)
感谢投稿
一面
1、介绍一下自己。
2、项目参与的核心设计有哪些?
3、ArrayList和LinkedList底层。
4、HashMap及线程安全的ConcurrentHashMap,以及各自优劣势
5、Java如何实现线程安全
6、Synchronized和Lock哪个更好?
7、HashMap中的get()方法是如何实现的?
-
首先向get()方法中传递一个key
-
在get()方法中调用hash(key),如果key!=null,返回该key的哈希值hash = key.hashCode()^ (h >>> 16),否则返回hash=0
-
在get()方法中调用getNode(hash,key)方法,获取该key的节点,并返回value
-
getNode()方法中首先要判断Hashtable是否为空且table长度大于0且该hash值对应的table元素不为空,条件成立则判断该节点的哈希值是否等于hash,依次遍历该链表或红黑树,查找key==node.key?返回查找到的节点的value
8、HashMap可以用在哪些场景?
9、JVM,垃圾回收机制,内存划分等
10、SQL优化,常用的索引?
11、还有什么问题需要问的。
二面
1、没有自我介绍,直接问做过哪些Java开发相关的项目。
2、对哪些技术比较熟悉?
3、多线程状态图,状态如何流转?
4、死锁,死锁原因
5、页锁、乐观锁、悲观锁?
6、乐观锁如何保证线程安全?
7、用过线程池吗,对应的好处,如何用?
8、两个10G的文件,里面是一些url,内存只有1G,如何将这两个文件合并,找到相同的url?
10、1000个多并发线程,10台机器,每台机器4核的,设计线程池大小。
11、代码题:两个有序数组,数组中存在重复数字,合并成一个有序数组,去除重复数字。
12、说一下自己的优点。
三面
1、jvm性能调优都做了什么?
2、数据库性能调优如何做?
3、分布式系统原理:CAP,最终一致性,幂等操作等。
4、高并发情况下,我们系统是如何支撑大量的请求的?
5、集群如何同步会话状态。
6、常用NOSQL,有做过比较。
7、什么情况会出现雪崩,以及如何应对?
8、负载均衡的原理。
9、数据库事务属性。
10、与同事沟通的时候,如果遇到冲突了如何解决?
11、工作中觉得哪方面欠缺?
12、有问题要问么?
13、期望薪水?
14、为什么要离开现在的公司?
最后
针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。
最新整理面试题
上述的面试题答案都整理成文档笔记。 也还整理了一些面试资料&最新2020收集的一些大厂的面试真题(都整理成文档,小部分截图),有需要的可以点击进入暗号:****
最新整理电子书
最新整理大厂面试文档
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。一键三连哦!
谢谢大家的观看!