面试总结

Java基础

  1. ArrayList如何扩容?
  2. hashcode相关
  3. Map以对象为key可能会出现那些问题?
  4. hashMap底层是怎么实现的,怎么解决冲突问题?
  5. 手写常见的数组排序?
  6. 手写常见的数据的查找?
  7. a=a+b,a+=b有什么区别?
  8. 手写有序数组的2分查找?
  9. ArrayList和linkedList的区别(原理)?
  10. ConcurrentHashmap中分段加锁的实现原理?
  11. 内部类如何访问外部类的变量?使用场景是什么?
  12. 接口和抽象类的区别和用法的区别?
  13. final的使用场景?
  14. int和Integer区别?(五点区别)开发时候要用哪个?为什么?
  15. Try-catch-finally执行顺序(其实是问字节码指令的生成和执行顺序)特殊例子
  16. Object 对象中的方法,能 "." 出来的方法?
  17. final如何实现不可变?
  18. 拦截器和过滤器的区别?
  19. 集合下边的类 ?(单列集合collection、list、set、双列集合 map)
  20. 从request中能获哪些些信息?

JVM

  1. jvm在什么情况下会执行GC?
  2. 对象已死的算法?
  3. 常用的GC算法?
  4. 类加载的七个阶段(类加载流程)(类加载机制)?
  5. 类加载器(ClassLoader)的分类(四类)?
  6. JAVA类加载器的作用?
  7. 双亲委派模型?
  8. Jvm内存模型,每个区域作用?
  9. 怎么定位outomenryerror?
  10. 新生代老生代的默认比例?
  11. 本地缓存 软引的处理
  12. 跨代回收机制
  13. New 对象一定在堆上吗

Spring

  1. spring事务和redis事务如何保证一致?
  2. spring配置文件中常用的配置都要哪些?
  3. 自定义注解的原理,如何实现自定义注解?
  4. Spring里边常见的注解及作用?
  5. 注解@autowire和@resource注解的区别?
  6. Springmvc的执行过程?
  7. spring的事务传播机制?
  8. aop的源码实现?用到什么模式(工厂模式?)
  9. Spring AOP、IOC的底层实现原理?
  10. AOP 在项目开发开发中使用到的地方
  11. Spring如何用拦截器处理日志?
  12. 通过拦截器如何获取接口返回的参数?
  13. AOP的底层源码实现原理?
  14. SpringMvc中注解的实现原理?
  15. mybatis和Hibernate的区别?(5点)
  16. resultType和resultMap的区别?
  17. spring 事务的实现?
  18. MyBatis介绍,scan的作用?
  19. 如何在拦截器中实现日志的统一记录管理,在拦截器中记录到每个方法的日志?
  20. @bean作用
  21. @Transactional里边参数
  22. service 事务嵌套事务执行方式(衍生异常嵌套异常)?走默认传播机制,合并执行
  23. RestFull介绍下,有什么特点?
  24. springBoot
  25. springBoot相关面试题?
  26. Spring和spring boot区别 怎么把自己写的组件集成到spring中?

zookeeper

  1. zookeeper实现分布式锁,可能会出现哪些问题?
  2. zookeeper相关?节点问题,如果分布式锁使用的是临时节点,客户端断开后出出现什么问题?
  3. zookeeper选举机制?

redis

  1. redis实现分布式锁可能会出现哪些问题?
  2. redis集群中hash槽的概念?
  3. Redis常用的数据类型?适合存储什么类型的数据?
  4. 为什么项目要用redis
  5. redis成为瓶颈时怎么办
  6. redis缓存击穿的应对策略?项目中的具体实现?
  7. 缓存失效、缓存击穿、缓存雪崩的定义?如何解决?
  8. 缓存击穿的处理方法?
  9. 缓存失效时,并发访问如何让一个KEY只被加载一次,拦截其他的请求?
  10. Redis的命令 (字符串、Hash、List、Set、SortSet、发布订阅、事务、服务器)
  11. Redis过期机制?(共六种数据淘汰策略。(分三类))
  12. Redis 持久化方式 (aof、rdb)
  13. Redis集群怎么弄的
  14. Redis Slave怎么同步的 (三种情况:初始化同步、运行中、断线重连)
  15. setnx作用 操作时候服务器或客户端异常?(SET if Not eXists)

dubbo

  1. dubbo相关面试题?
  2. dubbo的结构?
  3. dubbo的负载策略 默认负载?

多线程

  1. synchronized的实现原理是什么?
  2. AQS理论
  3. synchronized和AQS锁的区别?
  4. threadLocal如何进行线程隔离?
  5. 线程死锁产生的必要条件,如何避免死锁?
  6. volitile如何在不用synchronized的情况下实现原子性?
  7. CAS和ABA问题?
  8. 分布式锁? (zk、redis)
  9. 线程安全的map及实现原理?
  10. concurrentHashMap如何实现线程安全?
  11. 线程池参数?线程池类型?工作原理?拒绝策略?创建和提交?
  12. 如何创建线程池?
  13. 一个固定线程池,最小是10个,最大是20个,线程池中的线程数不释放,第21个线程会怎么样?
  14. synchronized和volitied的区别?
  15. ThreadLocal变量的作用范围,应用场景?
  16. Synchronized和Lock锁的区别?
  17. 读写锁底层原理?
  18. 可重入锁底层原理?
  19. 线程的内存模型?
  20. Volitile关键字的原理?
  21. 为什么hashMap不是线程安全的集合,线程安全的集合有哪些?什么叫线程安全?
  22. 多线程同步除了Synchronized还有什么类似实现?
  23. CAS参数?(三个参数)
  24. ReadWriteLock, ReentrantLock,ReentrantLock.Condition的含义
  25. ReentrantLock和synchronized关键字的区别? (原生支持、API支持)
  26. ReentrantLock公平锁非公平锁的实现原理
  27. ReentrantLock和synchronized关键字的区别? (原生支持、API支持)
  28. AtomicReference,AtomicStampedReference(针对CAS的ABA问题要答出这个API)
  29. AtomicReference,AtomicStampedReference(针对CAS的ABA问题要答出这个API)、
  30. 线程池,cachedThreadPool能创建多少线程(不要说Integer.MAX_VALUE?)
  31. 进程和线程
  32. 进程和子进程
  33. 进程间通信
  34. Hashtable和concurrenthashmap 锁是怎么实现的
  35. Synchronized jvm是怎么实现的
  36. 逻辑地址、 线性地址、 物理地址(启动分段、启动分页)
  37. update库存问题

Mysql

  1. 数据库如何实现mvcc
  2. Mysql事物隔离级别,默认级别?
  3. MySQL索引建立原则?
  4. 创建索引的经验
  5. mysql的隔离级别,你们用的什么级别
  6. 什么是事务的传播机制
  7. mysql索引的分类及实现原理?
  8. 手写groupby分组,考察by的字段必须出现在查询列表中?
  9. mysql查询语句如何做优化?
  10. 如何分析一次慢查询?
  11. mysql如何走组合索引?a=1,b=1,c=1;等组合,只有a在前边了才会走索引
  12. 表中设置的索引是a,b组合索引,如果查询语句为:select * from table where b,a 是否会走索引?
  13. MySQL的几种架构 一主多从 (同步机制)、会出现的问题、怎么解决?
  14. 主键索引和唯一索引的区别
  15. 分表怎么设计查询
  16. Hash分表查询问题
  17. Mysql 怎么看一条sql用了什么锁
  18. mysql explan type indexMerge 还有slow log别忘了 数据量少时即使没用到索引也不会触发slow log
  19. MySQL怎么实现有这条数据就更新没有就插入(on duplicate key update)
  20. 数据库分库分表如何实现,常见的分库分表的方法,主从复制原理,读写分离原理,如何实现?

设计模式

  1. 如何实现策略模式
  2. 手写性能最优的单利模式?
  3. 常见的设计模式?手写单利模式
  4. 数据结构
  5. 红黑树原理?结构图?
  6. 单链表翻转
  7. 怎么看单链表有环

队列


网络协议

  1. http和https的区别?
  2. GET和POST区别 (三方面:1、原理2、安全性3、数据传输量)
  3. GET的数据是在哪里传递的?保存的格式?
  4. 403什么意思?如何处理项目中的403
  5. TCP三次握手和四次挥手?
  6. 输入url到页面加载都发生了什么事情?
  7. TCP三次握手过程

RPC

  1. https调用时对参数是加密的么
  2. 为什么会产生跨域?如何解决?

MQ

  1. Rabbitmq几个组件
  2. Rabbitmq查看队列中数量
  3. Rabbitmq 通配符数据结构
  4. Rabbitmq的几种集群模式(两种模式)
  5. Rabbitmq支持批量消费吗 ?(Prefetch count参数)

算法

  1. 快速排序 (选择排序和冒泡排序) (查找: 一般查找、二分查找)
  2. N阶乘递归?(if (n == 1 || n == 0) return 1;else return n * Factorial(n - 1);)
  3. 一个数组有两段递增的,第一段最小值比第二段最大值大怎么查找
  4. 两个10G的大文件存储的是url查找相同的url
  5. 写一个算法 输入 int[] arr = {11,22,3,4,55,67},输出 结果 map<Integer,Integer> 每个数字出现的次数?

工具

  1. maven中install和deploye区别?
  2. git和svn的区别?(集中、分布式)git如何提交代码到资源库?

项目设计

  1. 介绍下项目,在项目设计中的一些原则?
  2. 介绍下最熟悉的项目,其中的角色,编写的模块?
  3. 接口出现异常,是直接暴露给用户还是?
  4. 如何设计一个秒杀系统?
  5. 公司系统架构
  6. 线上排查处理oom?
  7. 画了下系统的架构图
  8. 问题排查原则
  9. 排查的思路?
  10. 系统有没有高并发,如何保证并发安全?
  11. 系统扩展性如何设计
  12. 找一个最有挑战性的项目介绍一下
  13. 怎么设计一个无锁的队列
  14. 下发配置网络抖动问题
  15. Java9的新特性
  16. 接口1万并发怎么优化
  17. 调用服务不稳定怎么处理
  18. Id怎么生成 id生成器
  19. 线上cpu100%如何排查?
  20. 发券的时候如何防止发超?
  21. 发券的规则如何设计
  22. 对于规则的变和不变如何进行匹配,(策略模式),能说下spring中什么地方用到策论模式


Linux

 

  1. Linux常用的命令?
  2. 如何使用命令和工具进行分析?
  3. linux文件查找替换命令
  4. 怎么查看cpu占用最高的线程的方法?(top -u tomcat -c)
  5. 查看cpu使用率?


分布式

 

  1. 一致性hash环
  2. Mongodb数据存放规则 mongodb集群
  3. 负载均衡怎么处理session问题? (三种方案)
posted @ 2019-04-23 08:51  二叉树的博客  阅读(222)  评论(1编辑  收藏  举报