1、类加载机制概念、加载步骤、双亲委托机制、全盘委托机制、类加载器种类及继承关系
2、如何实现让类加载器去加载网络上的资源文件?怎么自定义类加载器?自定义的加载器还符合双亲委托机制吗?怎么打破双亲委托机制?
3、实例化对象的方式有几种?
4、由Object类的clone方法引申到深复制和浅复制的区别
5、反射的概念、用法、实践
6、Java内存模型和JVM内存结构
7、有一台4核8G的机器,该给JVM里的堆区和虚拟机栈分配多大的内存?(初始值、最大值、堆区年轻代和老年代的分配比例等等)
8、堆内存中的年轻代分配内存过少或过多分别有什么影响?复制算法导致Stop-the-World吗?
9、哪些参数可以设置JVM中的内存分配?
10、需要在线程范围内去共享一个变量,怎么实现?ThreadLocal源码实现、Key弱引用导致的内存泄露、怎么避免?
11、volatile的作用、实现机制、缓存一致性实现
12、AtomicInteger原子类的作用、源码实现机制
13、CAS无锁算法概念、源码实现机制、Unsafe类源码延伸到HotSpot虚拟机对应的C++方法再延伸对应的汇编函数
14、ReentrantLock中非公平锁的源码实现、AQS源码实现、为什么需要自旋锁?锁膨胀的过程?
15、线程池的使用场景、常用参数、拒绝策略
16、阻塞队列的种类、底层数据结构和使用场景
17、手写BIO的Socket编程、BIO和NIO的区别
18、Netty线程模型、零拷贝、粘包拆包、心跳机制、Pipeline源码
19、责任链模型、策略模式、模板模式、设计模式里的原则
20、Top K问题,找到上千万个数字中从大到小的前10个数字
21、MySQL中的聚集索引和稀疏索引区别、索引是越多越好吗?什么样的字段适合建索引?
22、索引覆盖和回表的概念、怎么避免回表?
23、为什么采用B+树而不用AVL树?
24、事务的底层实现
25、MVCC的概念及实现机制
26、Redis为什么这么快?为什么不用多线程?
27、哈希表查询的时间复杂度、哈希冲突的解决方法?
28、Sorted Set的应用场景、跳表的实现、查询和插入的时间复杂度?
29、Dubbo的应用场景、底层通信组件、服务降级、负载均衡、接口暴露、序列化方式、让你实现一个简单的RPC框架你会怎么做?
30、Zookeeper的应用场景、watch机制、领导者选举算法、ZK实现分布式锁
31、对称加密、非对称加密、数字证书、HTTPS的连接过程、SSL加密一定安全吗?SSL在哪一层实现加密?
32、OSI七层协议?路由器工作在那一层?HTTP、TCP、FTP、DNS工作在哪一层?
33、ARP协议的作用及流程
34、Git的操作、代码冲突的解决方法
35、Redis的缓存穿透、缓存雪崩、数据一致性的解决方案
36、Elasticsearch的倒排索引、index和document的概念、脑裂问题
37、RabbitMQ应用场景、生产/消费者和发布/订阅模式概念和应用、数据丢失问题
38、商品超卖的解决方法、MySQL乐观锁和Redis乐观锁
39、手写SQL:有一个成绩表,表里有三个字段分别是姓名、课程和成绩,求平均分大于85分的学生姓名和平均成绩。
SELECT
t.name,t.avgScore
FROM
(
select name,avg(score) AS avgScore from student GROUP BY name
) t
WHERE t.avgScore > 85
40、算法:写归并排序和快排、分析时间复杂度、怎么评定是不是一个稳定的排序算法?
网友评论