Java
- 面向对象的三大特征:举例说明封装、继承、多态。多态的实现原理?
- object类源码分析:比如Hashcode相等,两个类一定相等吗?equals呢?相反呢?
- 介绍一下集合框架?泛型了解吗?
- map相关原理、源码,比如:hashmap、hashtable、treemap?线程安全的concurrenthashtable、concurrenthashmap?1.7,1.8中的进化?
- thread底层方法原理?线程状态等?
- 线程池框架,原理?解决啥问题?
- volatile、synchronized原理?synchronized作用在代码块、方法区别?
- ThreadLocal是什么?底层如何实现?写一个例子。
- J.U.C下源码分析。比如:原子类、锁,并发集合。
- AQS、CAS了解吗?手写阻塞队列
- synchronized,ReentrantLock区别?
- 设计模式。比如:手写各种单例模式,解释线程安全的单例模式原理?
- Java反射了解吗?底层实现原理呢?哪些框架或者你的项目中用到了反射?解决什么问题?
JVM
- Jvm内存区域划分?1.7,1.8方法区的进化
- 对象的创建?内存布局?访问定位?如何判断是否死亡?分配与回收策略?
- 垃圾收集算法?垃圾收集器?用过什么垃圾回收器?
- Minor gc,full gc了解吗?线上发生频繁额full gc如何处理?cpu使用率过高怎么办?如何定位问题?如何解决?说一下解决思路和处理方法。
- 知道字节码吗?字节码都有哪些?Integer x=5, int y=5,比较x==y都经过哪些步骤?
- 讲讲类加载过程?都有哪些类加载器?分别加载哪些文件?手写类加载demo。通过例子说明jvm设计破坏了双亲委派模型,如何解决的?
- 知道osgi吗?如何实现的?
- Jvm优化了解吗?使用什么方法?达到什么效果?
- class.forName(“java.lang.String”)和String.class.getClassLoader.loadClass(“java.lang.String”)什么区别?
- 内存模型了解吗?目的?如何设计的?happen-before了解吗?解决什么问题?
- Java线程和操作系统线程区别?java线程如何实现的?线程状态转化说一下?
- 什么是线程安全?jvm线程安全实现方法?
- Jvm锁了解吗?不同版本对锁的优化呢?
Spring
- IOC,AOP底层原理?
- BeanFactory和FactoryBean的区别?
- bean的加载机制?
- Spring用到的设计模式?举例
- Spring事务的特性?隔离规则,传播规则,回滚规则,超时,只读说一下?
- Cglib知道吗?和jdk动态代理区别?动态代理和静态代理的区别呢?手写jdk动态代理。
- Spring MVC流程?
数据库
- Mysql体系结构了解吗?了解哪些存储引擎?都有啥区别?
- 使用索引有哪些原则?索引底层实现原理知道吗?
- 关系型数据库设计规范?如何优化一条查询sql?
- innodb锁的类型?有哪些锁的算法?解决什么问题?
- MVCC了解吗?实现原理呢?
- Innodb有哪些事务?事务的四大特性了解吗?底层实现原理呢?事务隔离级别了解吗?默认的隔离级别是什么?这个隔离级别导致幻读,没有影响吗?为什么不会导致幻读?原理了解吗?
- 分库分表了解吗?为什么要分库分表?有哪些分库分表方案?如何设计可以动态扩容缩容的分库分表方案?
- 用过哪些分库分表中间件?有啥有点和缺点?讲一下你了解的分库分表中间件底层实现原理吧?
- 我现在有一个未分库分表的系统,以后系统需要分库分表,如何设计?那如何让未分库分表的系统动态切换到分库分表的系统上呢?
- 如何解决分库分表主键问题?有什么实现方案?
- 数据库集群了解吗?有没有搭建过?
- Mybatis一级缓存,二级缓存了解吗?
分布式系统架构设计
- 幂等了解吗?有哪些解决方案?你们如何实现的?
- 分布式事务知道吗?你们怎么解决的?TCC?如果出现网络问题咋办?
- 分布式寻址方式都有哪些算法?知道一致性hash吗?手写一下java实现代码?你若userId取模分片,那我要查一段连续时间里的数据怎么办?
- 分布式锁了解吗?有哪些实现方案?都有啥区别?你们怎么用的呢?手写redis分布式锁demo。
- 为什么要进行系统拆分?
- 如何设计一个高并发高可用系统?
- 系统安全性,敏感数据如何存储,比如身份证,密码?
- 如何限流?工程中怎么做的,说一下具体实现?
- 缓存如何使用?缓存使用不当会造成什么后果?
- 熔断了解吗?如何熔断?熔断框架有哪些?具体实现原理了解吗?
- 如何降级?如何进行系统拆分?如何数据库拆分?
- 负载均衡了解吗?如何实现的?
分布式缓存
- 用过哪些缓存数据库?有啥区别?为什么单线程的redis比多线程的memcheched效率高呢?
- Redis用到哪些场景了?
- Redis有哪些数据类型?
- Redis底层数据结构了解吗?说下map底层设计原理吧?
- Redis的消息队列了解吗?和kafka的有啥区别呢?
- Redis的主从复制怎么实现的?集群模式如何实现的呢?redis key如何寻址呢?
- 知道redis的持久化吗?有啥优缺点?具体底层实现呢?
- Redis过期策略有哪些?LRU?写一下java版本的代码吧。
分布式服务框架
- 了解哪些rpc框架?区别呢?
- 说一下dubbo的实现过程吧?注册中心挂了可以继续通信吗?
- Dubbo直出哪些序列化协议?hessian呢?说一下hessian的数据结构?PB知道吗?为啥PB效率最高?
- Dubbo复制均衡策略和高可用策略都有哪些?动态代理策略呢?
- Zk了解吗?可以干吗?原理知道吗?Paxos算法了解吗?
- 了解netty吗?netty可以干嘛?NIO,BIO,AIO了解吗?区别呢?Rector模型了解吗?
分布式消息队列
- 了解哪些消息队列?区别呢?消息队列有啥优缺点?
- 如何保证消息队列的高可用?如何保证消息不被重复消费?
- 如果让你写一个消息队列,架构如何设计?说下你的思路
分布式搜索引擎
- Es的工作过程?如何实现分布式的?
- Es再数据量很大的情况下(数十亿级别)如何提高查询效率?
- Es和mongdb区别?使用场景呢?
网络
- IO模型?
- 说一下TCP/IP四层?
- TCP三次握手,四次分手的工作流程?画一下流程图?为什么不是四次,五次?
- http报文格式?http状态码了解吗?知道哪些?http 1.0,1.1,2.0有啥区别?
- http工作流程?https的工作流程?
- cookie和session了解吗?原理?
- 加密算法?对称加密?非对称加密?数字签名?
- oauth认证原理?
系统安全性
- SQL注入
- 跨站脚本攻击(XSS)
- 跨站请求伪造(CSRF)
- XML外部实体注入攻击
- 中间人攻击
- 文件上传漏洞
- 反序列化漏洞
- 敏感信息泄露
算法和数据结构
- 链表的基本操作
- 树:二叉树、红黑树
- 查找,排序,kmp,等
- 剑指offer练习
- 海量数据处理实现思路。比如:怎么在海量数据中找出重复次数最多的一个
操作系统
- linux基本命令操作
其他技术栈
- tomcat
- mybatis
- drools
- esper
- thrift
- netty