corejava

  1. hashcode 相等两个类一定相等么?equals呢?相反呢?

  2. 介绍一下集合框架

  3. hashmap hashtable 底层实现什么区别?hashtale和concurrenthashmap呢?

  4. hashmap和treemap 什么区别?底层数据结构呢?

  5. 线程池用过么?都有什么参数?底层如何实现的?

  6. sychnized和Lock什么区别?sychnize什么情况是对象锁,什么时候是全局锁?为什么?

  7. ThreadLocal 是什么?底层如何实现?写一个例子?

  8. volitile的工作原理?

  9. cas知道么?如何实现的?

  10. 请用至少四种写法?写一个单例模式?

JVM

  1. 请介绍一下JVM内存模型?用过什么垃圾回收器,都说说?

  2. 线上发送频繁full gc如何处理?CPU使用率过高怎么办?如何定位问题?如何解决?说一下解决思路和处理方法。

  3. 知道字节码么?字节码都有那些?Integer * 5,int y=5, 比较x==y 都经过那些步骤?

  4. 讲讲类加载机制?都有哪些类加载器,这些类加载器都加载哪些文件?手写一下类加载Demo

  5. 知道osgi么?他是如何实现的?

  6. 请问你做过哪些JVM优化?使用什么方法?达到什么效果?

  7. class.forName(“java.lang.String”)和String.class.getClassLoader.loadClass(“java.lang.String”)什么区别?

Spring

  1. spring都有哪些机制?AOP底层如何实现的?IOC?

  2. cglib知道么?它和JDK动态代理有什么区别?手写一个jdk动态代理?

数据库

  1. 使用mysql索引都有哪些原则?索引什么数据结构?B+tree和B tree什么区别?

  2. mysql有哪些存储引擎啊?都有啥区别?要详细?

  3. 设计高并发系统数据库层面该怎么设计?数据库锁有哪些类型?如何实现?

  4. 数据库事务有哪些?

分库分表

  1. 如何设计可以动态扩容缩容的分库分表方案?

  2. 用过哪些分库分表的中间件,有啥优点和缺点,讲一下你了解的分库分表中间件的底层实现原理。

  3. 我现在有一个未分库分表的系统,以后系统需要分库分表,如何设计,让未分库分表的系统动态切换到分库分表系统上?

  4. 分布式事务知道么? 你们怎么解决的? TCC?那若出现网络原因,网络连不通怎么办啊?

  5. 为什么分库分表?

  6. 分布式寻址方式都有哪些算法?知道一致hash么?手写一下Java实现代码?你若userId取模分片,那我要查一段连续时间里的数据怎么办?

  7. 如何解决分库分表主键问题?有什么实现方案?

分布式缓存

  1. redis和memched 什么区别?为什么单线程的redis比多线程的memched效率要高?

  2. redis有什么数据类型?都在哪些场景下使用?

  3. redis的主从复制是怎么实现的?redis的集群模式是如何实现的呢?redis的key是如何寻址的?

  4. 使用redis如何设计分布式锁?使用zk可以么?如何实现?这两种哪个效率更高?

  5. 知道redis的持久化么?有什么优点和缺点?具体底层实现呢?

  6. redis过期策略都有哪些?LRU?写一下Java版本代码?

分布式服务框架

  1. 说一下dubbo的实现过程,注册中心挂了可以继续通信么?

  2. zk原理知道么?zk都可以干什么?paxos算法知道么?说一下原理和实现?

  3. dubbo支持哪些序列化协议?hessian?说一下hessian的数据结构?PB知道么?为啥PB效率是最高的?

  4. 知道netty么?netty可以干嘛?NIO,BIO,AIO都是什么啊?有什么区别?

  5. dubbo复制均衡策略和高可用策略都有哪些?动态代理策略呢?

  6. 为什么要进行系统拆分啊?拆分不用dubbo可以么?dubbo和thrift什么区别啊?

分布式消息队列

  1. 为什么使用消息队列?消息队列有什么优点和缺点?

  2. 如何保证消息队列的高可用?如何保证消息不被重复消费?

  3. kafka,activemq,rabbitmq,rocketmq都有什么优点和缺点?

  4. 如果让你写一个消息队列,该如何进行架构设计?说一下你的思路?

分布式搜索引擎

  1. es的工作过程实现是如何的?如何实现分布式的啊?

  2. es在数据量很大的情况下,如何提高查询效率?

  3. es的查询是一个怎么的工作过程?底层的lucence介绍一下?倒排索引知道么?es和mongodb什么区别?都在什么场景下使用?

高并发高可用架构设计

  1. 如何设计一个高并发高可用系统?

  2. 如何限流?工程中怎么做的,说一下具体实现?

  3. 缓存如何使用的?缓存使用不会造成什么后果?

  4. 如何熔断?熔断框架都有哪些?具体实现原理知道么?

  5. 如何降级? 如何进行系统拆分?如何数据库拆分?

通信协议

  1. 说一下TCP/IP 四层?

  2. http的工作流程? http1.0 http1.1 http2.0具体哪些区别?

  3. TCP三次握手,四层分手的工作流程?画一下流程图?为什么不是四次五次或者两次?

  4. 画一下https的工作流程?具体如何实现?如何防止被抓包?

算法

  1. 45亿阿拉伯数字,如何进行去重?如何找出最大的那个数?

数据结构

  1. 二叉树和红黑树
    博文推荐