100道Java高频面试题(阿里面试官整理)

我分享文章的时候,有个读者回复说他去年就关注了个人微信公众号,打算看完个人全部文章,而后去面试,结果我后来很长时间不更新了。。。因此为了弥补一直等个人娃儿们,给你们的金三银四准备了100道花时间准备的高频Java面试题,你们不要太感动,记得点赞评论就行。git

此次只放出九十道,剩下10道准备找认识的几位面试官去要,但愿不会被拒绝。
在这里插入图片描述面试

这些题我认为认真思考仍是颇有价值的,答案整理中,所有整理好,我会作出PDF,整理好后你们公众号后台回复“Java面试题”领取。redis

90道高频面试题

  1. 自我介绍一下
  2. 项目中用到的技术栈介绍一下
  3. 作的自认为比较满意的点讲一讲?
  4. 若是这个方案让你从新设计,你怎么作?
  5. Java集合类都有哪些?
  6. ArrayList 和 LinkedList 区别?
  7. HashMap 实现数据结构和扩容过程?
  8. ArrayList 和 LinkedList 区别? 你日常怎么选择?
  9. 异常类都有哪些?Exception 和 Error什么区别?
  10. Synchronized 原理,锁膨胀过程 ?
  11. Synchronized 和 reentrantlock 区别?
  12. 线程池原理是怎样的?
  13. 分布式事务一致性怎么实现?
  14. 消息乱序遇到过吗? 怎么解决的?
  15. ThreadLocal 用过吗?实现机制?
  16. wait、sleep区别?
  17. 反射用过吗?什么原理?
  18. 动态代理了解吗? cglib什么区别
  19. 单例模式了解吗? 实现一个线程安全的单例模式?
  20. 无界队列和有界队列?
  21. AQS 知道吗?
  22. volatile了解吗?
  23. 实现一个生产者消费者例子
  24. Java内存模型清楚吗?
  25. 遇到过线上性能问题吗? 怎么排查的?
  26. 网络问题遇到过吗?TIME_WAIT和CLOSE_WAIT的区别
  27. 三次握手讲一讲
  28. CountDownLatch、Seamphone、CyclicBarrier 都了解吗?
  29. private、protected、public、关键字你日常怎么用的?
  30. Java是值传递仍是引用传递,写一段对象拷贝的代码
  31. 内存回收机制了解吗?
  32. 新生代和老生代区别?
  33. 垃圾回收器有哪几种? 大家生产环境用的哪一种或哪几种?
  34. Java线程和操做系统线程什么关系?
  35. 线程有几种状态,线程生命周期讲讲
  36. MySQL 索引使用什么数据结构?为何用 B+作索引?
  37. 什么是最左匹配原则?
  38. 在建表的时候如何设计因此的?有没有作过索引优化 ?
  39. 分库分表作了吗? 怎么实现的?
  40. MySQL 主从同步怎么作的?binlog清楚吗?
  41. 有没有作分库分表?怎么设计的?
  42. 用userId作的分库分表,如今须要用电话号码查询怎么办?
  43. 大家用的什么日志框架,log4j 和logback ?和slf4j什么区别?
  44. redis 的String 是怎么实现的? 为何不直接用c的?
  45. redis 是单线程的吗? 为何这么快?
  46. redis 中有哪几种数据结构?分别表明什么
  47. 类加载机制了解吗?
  48. 什么是双亲委派模式
  49. concurrenthashmap 什么原理?
  50. Spring AOP与IOC的实现原理
  51. Spring的BeanFactory和FactoryBean的区别
  52. 讲讲Spring中一个Bean的加载流程?
  53. Spring的事务的隔离级别?
  54. Autowired注解的原理?
  55. 用的什么rpc框架
  56. 幂等了解吗? 大家系统怎么作幂等的
  57. 限流、熔断有了解吗?如何实现的
  58. 消息中间件如何解决消息丢失、消息乱序问题?
  59. 分布式事务保证一致性?
  60. 分布式锁的实现?
  61. 实现一个分布式自增id?
  62. 海量url怎么去重?
  63. Redis有没有作持久化,怎么作的?
  64. 工做中用到了那些设计模式?
  65. 什么是一致性hash?
  66. 项目中用过什么设计模式?清楚模板方法、策略模式、责任链模式吗?
  67. MySQL InnoDB存储的文件结构
  68. 讲讲乐观锁和悲观锁
  69. cpu 100% 遇到过吗? 怎么解决的
  70. 更新数据机制? 先更新缓存仍是DB?
  71. 缓存穿透、雪崩有了解吗
  72. 设计一个抢红包的程序?
  73. Dp背包问题?
  74. Minor GC 与 Full GC 分别在何时发生?
  75. Java 类加载过程?
  76. 谈谈对Spring IOC和DI的理解?
  77. 你经常使用的git 命令?
  78. 线程调用start 和 run 什么区别? 会有什么效果
  79. 中序遍历二叉树
  80. 以前项目遇到过什么挑战?
  81. 项目中你认为作的最有价值的功能?
  82. 父类和子类有同一个属性,实例化子类时是否会包含父类的属性?
  83. 有没有出现过Full Gc等问题? 你是怎么排查的?
  84. 通常是怎么判断SQL 索引设置是否合理的?
  85. 什么是不可变对象?String 类为何设计成不可变的?
  86. 抽象类和接口什么区别?你在作接口和类设计时如何选择?
  87. HashMap的key 类型有什么要求?
  88. 写一个深度优先算法?
  89. 写快速排序 & 冒泡排序?
  90. 什么是用户空间和内核空间?有什么区别?

你们先思考思考,答案更新完毕在公众号后台回复”Java面试题“ 暗号领取。算法

但愿你们金三银四找到本身满意的工做,不看机会的同窗升职加薪,必拿3.75。设计模式