前言
遥想三年前,我还是一个初出茅庐的年轻小伙,那时候参加了京东在我们学校的社招,结果被面试官狠狠的虐了一波,为此我卧薪尝胆,加油学习!终于在三年后的今天再战京东成功拿下offer,三年,你知道这三年我经历了什么吗?
开个玩笑,不过我还真是三年去校招被拒,现在通过社招又拿到了offer,下面分享一下我自己的经验吧!
一面
-
手撕代码。牛客题霸上的原题,可以去看看:NC127 最长公共子串
-
Object类中的方法。
-
接口和抽象类的区别,注意JDK8的接口可以有实现。
-
动态代理的两种方式,以及区别。
-
Java序列化的方式。
-
传值和传引用的区别,Java是怎么样的,有没有传值引用。
-
一个ArrayList在循环过程中删除,会不会出问题,为什么。
-
@transactional注解在什么情况下会失效,为什么。
-
一致性Hash算法,一致性Hash算法的应用
-
JVM如何判断一个对象是否该被GC,可以视为root的都有哪几种类型。
-
强软弱虚引用的区别以及GC对他们执行怎样的操作。
-
Java是否可以GC直接内存。
-
Java类加载的过程。
-
双亲委派模型的过程以及优势。
-
常用的JVM调优参数。
-
线程池用过哪些?线程池有哪些参数?然后问我几个常用线程池的用法和实际场景问题。
-
集合框架的知识,hashmap,ArrayList,LinkedList源码相关知识,基本整个介绍了 一遍,与hastable,concurrenthashmap相互的关联和区别;
-
说几个垃圾回收器,cms回收器有哪几个过程,停顿几次,会不会产生内存碎片。老 年代产生内存碎片会有什么问题。
-
讲讲快速排序,分析一下时间复杂度?
-
双亲委派模型介绍一下;
-
java中同步、volatile关键字;
-
vm内存分区,为什么要有新生代和老年代?
-
有做个VM内存优化吗?
-
数据库索引主键和唯一索引有什么区别?
-
聚集索引和非聚集索引的区别?
-
MySQL存储引擎innoDB和MylSAM的区别?
-
innoDB的B+树索引叶子节点的Data域存储的是什么?MylSAM的B+树索引叶子节点的Data域存储的是主键还是物理地址?
二面
-
可重入锁的用处及实现原理,写时复制的过程,读写锁,分段锁(ConcurrentHashMap中的segment)。
-
悲观锁,乐观锁,优缺点,CAS有什么缺陷,该如何解决。
-
ABC三个线程如何保证顺序执行。
-
线程的状态都有哪些。
-
sleep和wait的区别。
-
notify和notifyall的区别。
-
ThreadLocal的了解,实现原理。
-
数据库连接池。
-
durid的常用配置。
-
长连接和短连接。
-
连接池适合长连接还是短连接。
-
Spring中使用了哪些设计模式
-
在一个静态方法内调用一个非静态成员为什么是非法的?
-
MySQL innodb的b+树索引,主键索引,聚簇索引有什么区别。
-
数据库四大特性
-
事务的四大隔离级别
-
jvm场景问题,标记清除多次后老年代产生内存碎片,引起full gc,接下来可能发生什么问题?
-
MySQL里有哪些锁,行锁表锁,乐观锁呢?
-
MySQL的死锁怎么产生的,举了两个例子。
-
dubbo里的zookeeper是做什么的?
-
aio,nio,bio的了解,NIO的核心概念有哪些?
-
常用的NIO框架有哪些?优劣势?
-
手撕代码。牛客题霸上的原题,可以去看看:NC9 二叉树中是否存在节点和为指定值的路径;
三面
-
单例模式的五种实现方式
-
dubbo的组件有哪些,各有什么作用。
-
zookeeper的负载均衡算法有哪些。
-
dubbo是如何利用接口就可以通信的。
-
redis的部署方式,主从,集群。
-
redis的哨兵模式,一个key值如何在redis集群中找到存储在哪里。
-
redis持久化策略。
-
自定义注解的实现。
-
Spring使用了哪些设计模式。
-
Spring的IOC有什么优势。
-
Spring如何维护它拥有的bean。
-
JDK8的新特性,流的概念及优势,为什么有这种优势。
-
对区块链的了解
-
如何设计双11交易总额面板,要做到高并发高可用?
-
分布式下redis如何保证线程安全?
-
redis持久化的方式以及区别;
-
zookeeper如何实现分布式锁、其他分布式锁怎么实现?
-
kafka的架构,如何用kafka保证消息的有序性?
-
数据库的优化包含哪些?MySQL的优化,谈两个你优化的例子。
-
最有技术难度的项目,介绍下相关核心设计流程。
-
工作中,遇见了技术瓶颈无法解决,你的解决思路?
-
未来你的职业规划是怎么样?