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

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

这次只放出九十道,剩下10道准备找认识的几位面试官去要,希望不会被拒绝。

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

这些题我认为认真思考还是很有价值的,答案整理中,全部整理好,我会做出PDF,整理好后大家公众号后台回复“Java面试题”领取。

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。

上一篇:飞越面试官(一)--Java基础


下一篇:扒一扒各大电商网站的m站都用的什么前端技术输入日志标题