Java部分
- java比较 icompare
- tomcat 热部署 加载方式与双亲委派模型?
- java io api 过滤器模式?
- threadLocal 实现原理?
- tcp ip协议
- 服务端如何确定seesion是同一个?
- 内存屏障(Memory Barriers)
- lock synchronized ReentrantLock
- jvm JVM的年轻代分为哪几代?年轻代什么时候会进入老年代?
- jvm JVM 垃圾回收算法?(注意年轻代与老年代是不一样的)?
- jvm内存模型 一个变量初始化 怎么分配内存 分配到什么地方?
- 不使用双亲委派模型的缺点?
- java 开源序列化框架有哪些?彼此之间有什么区别(优缺点)?
- java.util.concurrent hashmap 相关问题
- JAVA线程sleep和wait方法区别
https://jiankunking.blog.csdn.net/article/details/79824353 - PriorityQueue(优先级队列) 堆相关问题
- 常见的负载均衡算法
- java 阻塞队列 相关问题,阻塞具体是如何实现的?
- 静态代码块. 构造代码块. 构造函数以及Java类初始化顺序
- java 枚举的实现,内部如何进行存储的?
- 静态内部类与普通内部类,在用法. 初始化方面的区别?
- java 原子性 可见性 顺序性是通过什么来保证的?
- java 多线程内共享的模型
- 阻塞非阻塞与同步异步
- java nio原理
- 读写锁 自旋锁 尝试锁(cas) cas如何保证,查询到修改这个过程是原子的?
- 一个类中的静态变量是在类加载的哪个步骤加载的?
- synchronized与ReentrantLock 实现原理区别?
- threadlocal 实现原理?应用场景?
- 常见的设计模式
- 分布式事务
- 线程池工作原理及机制
- 线程挂了 保活
- keepalive 保活策略?
- Protocol Buffers 适用场景?
- http tcp 相比多了些什么?有什么不一样的地方?
- http与https区别?加密算法是?
- wait 是释放锁?为什么释放了锁,线程就挂起了。为什么线程wait了就挂起了?
- CMS 垃圾回收
- hashmap 线程不安全 什么时候会出现?会出现什么问题?(hashmap为啥线程不安全?)
- equals 比较原理?
- jvm 内存分布
- arraylist linklist
- interger 为null 转int 会发生什么?
- hashmap与hashset的关系?
- 线程与协程的区别?协程的优势?
- JDK8 如何实现协程?
- java lambda 实现原理
- java stream 实现原理
- 永久代(permanent generation)与Metaspace
- 如何保证GC ROOTS找的全?(比如中G1中)
- G1清理老年代. 年轻代是遍历所有吗?
- 可重入锁和不可重入锁?不可重入锁有啥缺陷?
- CPU密集型 Java线程池大小为何会大多被设置成CPU核心数+1?
- 什么情况下会出现ClassNotFoundException?
- 线程有几种状态?
- 如何动态上报JVM信息,以便后期排查OOM等问题?
- ConcurrentHashMap put的时候加锁的是数组上的元素 还是啥?
- Concurrenthashmap中用到的优化技巧?
- LRU如何实现?
- 为什么Concurrenthashmap扩容是安全的?
- LinkedHashMap和HashMap 区别?
- CompletableFuture get(long timeout, TimeUnit unit) throws TimeoutException, ExecutionException实现
https://medium.com/@sergeykuptsov/how-it-works-in-java-completablefuture-3031dbbca66d
64、Java time-based map/cache with expiring keys
https://stackoverflow.com/questions/3802370/java-time-based-map-cache-with-expiring-keys
65、jmap 其实是多个线程 他们之间是怎么通信 dump出数据的?(jmap命令的实现原理)
66、GC的年轻代Survivor区,为什么是2个,而不是1个?
https://stackoverflow.com/questions/10695298/java-gc-why-two-survivor-regions
简单来说2个Survivor区,就是整理内存碎片的时候方便。
67、类加载器及类加载机制
MySQL部分
- MySQL 时间 比较无效 原因?
- MySQL 数据库 索引 是以什么数据结构形式存储的?
- MySQL与sql server 异同点? 原理上?
- 索引顺序对于索引效果的影响?
- 数据库索引如何优化(从哪几个方面)?
- MySQL优化有哪些?
- 比如一个表中有100条数据,a字段的值,是从1到100,我要更新其中的数据,where条件时a>10
MySQL通过innodb引擎的话,是通过表锁还是行锁? - MySQL mvcc多版本并发控制
- MySQL为什么选中B+ TREE而不是B TREE?两种数据结构有什么区别?
B+ 树继承于 B 树,都限定了节点中数据数目和子节点的数目。B 树所有节点都可以映射数据,B+ 树只有叶子节点可以映射数据。
单独看这部分设计,看不出 B+ 树的优势。为了只有叶子节点可以映射数据,B+ 树创造了很多冗余的索引(所有非叶子节点都是冗余索引),这些冗余索引让 B+ 树在插入、删除的效率都更高,而且可以自动平衡,因此 B+ 树的所有叶子节点总是在一个层级上。所以 B+ 树可以用一条链表串联所有的叶子节点,也就是索引数据,这让 B+ 树的范围查找和聚合运算更快。
- MySQL 范围查询?索引的数据结构是如何处理的?
- MySQL事务提交原理?
- 聚集索引 非聚集索引 查询效率?
- MySQL 乐观锁 悲观锁
- 数据库分库分表
基础
- 进程间通信方式有哪些?
- 有些信号你能捕获,有些信号你是捕获不了的,捕获不了的信号有哪些?
- zookeeper 可以通过watch,用来做进程间通信,那么zk底层是使用什么方式来实现进程间通信的?依赖操作系统如何实现的?
- socket通信
- keepalive时间限制
- tcp 如何处理粘包问题
- http协议 如何区分header头还有body体
- tcp 协议网络段 协议簇
- 一次完整的http请求
- http code 302 304含义
线上
- 如何线上debug?比如线上的cpu爆了,这个步骤是?
- 线上fd耗光了,如何排查?
- 如何定位OOM 问题?
Kakfa
- kafka某个broker上是否可以有无限个topic?或者万级别的topic?
- kafka 设计,还有broker上文件存储
- kakfa是否支持顺序消费消息?
- zk在kafka集群中的作用
- kafka 消费时候可以批量拉取?
- 消息队列 选型 为什么选择kafka?
- kafka增加. 删除节点时如何迁移数据?新的数据如何分配?
- kafka写入消息 如何保证回滚或者保证不被消费
- kafka 如何确保消息消费且只消费一次?
- kafka 大批量写入 是怎么传输的?
对象缓存池
https://www.sohu.com/a/346950666_100123073
https://github.com/a0x8o/kafka/blob/master/clients/src/main/java/org/apache/kafka/clients/producer/internals/BufferPool.java - Kafka和RocketMQ存储区别
https://www.cnblogs.com/lewis09/p/11168902.html
ElasticSearch
- 在ElasticSearch中,集群(Cluster),节点(Node),分片(Shard),Indices(索引),replicas(备份)之间是什么关系?
- elasticsearch整个建索引. 查询的过程
- elasticsearch如何选举
- ik 是如何进行分词的?
- es Scroll 原理? Search After原理?
- es 副本作用?
- MySQL elasticsearch 查询对比?(比如整个搜索流程)
- elasticsearch match filter 差异点?
- es 评分机制/原理
OpenTSDB
- OpenTSDB与HBase 关系
脑经急转弯
- 判断一个整数是2的N次方?
- 二叉树拷贝(非递归)
- BitMap算法(应用)
其他
- 分布式锁有哪些实现方式?
- 分布式事务
- 异地多活
- zookeeper集群 当一个节点挂了一天,当再次启动的时候,如何识别哪个是leader?
- 有什么知名的开源apm(Application Performance Management)工具吗?
- pinpoint 原理?
- consul template作用?如何与prometheus交互的?
金融
- 同业拆借
- 信用卡消费一笔钱,是如何到收款人的账户的?(整个流转过程)
- 复式记账
Spring
- spring 注入 接口即如何注入一个接口的多个实现类?
- spring 中用到的设计模式?spring中一次完整的http请求链路?
- 手写stater
- spring 类自动加载机制
- spring fegin 接口相互调用异常问题解决,有没有熔断啥的配置?