关于java:分析了上百份大厂面经我总结了这些最最最常问的面试题刷完直接进大厂

4次阅读

共计 3966 个字符,预计需要花费 10 分钟才能阅读完成。

开始之前,先说一下我十分举荐的一种学习形式:

带着问题学习或者筹备面试。

另外,筹备面试的小伙伴,肯定要依据本身状况制订好复习计划!并且,你最好还要时不时自测一下,对着一些面试常见的问题进行自问。

为了不便大家,我剖析了百余份 2021 最新大厂面经,整顿了面试中最最最常问的一些问题!小伙伴们能够对照着这篇文章学习或者筹备面试。

另外,内容会持续欠缺,欢送你在评论区说出你遇到的高频面试题!

以下所有问题的答案能够参考(大部分都能找到):「Java 学习 + 面试指南」一份涵盖大部分 Java 程序员所须要把握的外围常识。

Java

根底

Java 根底这部分有一些太简略的问题就间接没有放上来。小伙伴们能够参考: Java 根底知识点总结。

  1. Java 中的几种根本数据类型是什么?对应的包装类型是什么?各自占用多少字节呢?
  2. String、StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?
  3. == 与 equals?hashCode 与 equals ?
  4. Java 反射?反射有什么毛病?你是怎么了解反射的(为什么框架须要反射)?
  5. 谈谈对 Java 注解的了解,解决了什么问题?
  6. Java 泛型理解么?什么是类型擦除?介绍一下罕用的通配符?
  7. 外部类理解吗?匿名外部类理解吗?
  8. BIO,NIO,AIO 有什么区别?

    Java 汇合框架

  9. 说说 List,Set,Map 三者的区别?三者底层的数据结构?
  10. 有哪些汇合是线程不平安的?怎么解决呢?
  11. 比拟 HashSet、LinkedHashSet 和 TreeSet 三者的异同
  12. HashMap 和 Hashtable 的区别?HashMap 和 HashSet 区别?HashMap 和 TreeMap 区别
  13. HashMap 的底层实现
  14. HashMap 的长度为什么是 2 的幂次方
  15. ConcurrentHashMap 和 Hashtable 的区别?
  16. ConcurrentHashMap 线程平安的具体实现形式 / 底层具体实现

    jvm

  17. jvm 内存构造
  18. jvm 调优参数
  19. 什么是类加载?何时类加载?类加载流程?
  20. 晓得哪些类加载器。类加载器之间的关系?
  21. 类加载器的双亲委派理解么?联合 Tomcat 说一下双亲委派(Tomcat 如何突破双亲委托机制?…)。
  22. 为什么须要双亲委派
  23. Java 内存模型
  24. 栈中寄存什么数据,堆中呢?
  25. 大对象放在哪个内存区域
  26. 堆区如何分类
  27. 垃圾回收有哪些算法
  28. GC 的全流程
  29. GC 中老年代用什么回收办法?

    多线程

  30. 线程和过程的区别。
  31. 什么是上下文切换?
  32. 什么是线程死锁? 如何防止死锁?
  33. 乐观锁和乐观锁理解么?
  34. 说说 sleep() 办法和 wait() 办法区别和共同点?
  35. Java 线程池有哪些参数?阻塞队列有几种?回绝策略有几种?新线程增加的流程?
  36. 实现 Runnable 接口和 Callable 接口的区别。
  37. 讲一下 JMM(Java 内存模型)。volatile 关键字解决了什么问题?说说 synchronized 关键字和 volatil
  38. 关键字的区别。
  39. AQS 原理理解么?AQS 组件有哪些?
  40. 用过 CountDownLatch 么?什么场景下用的?

    网络

    OSI 与 TCP/IP 各层的构造与性能, 都有哪些协定? 为什么网络要分层?
    计算机网络的一些常见状态码
    ping 所应用的协定
    TCP 的三次握手与四次挥手的内容?TCP 为什么连贯是三次握手而断开是四次握手?
    TCP 与 UDP 的区别及应用场景
    TCP 是如何保障传输的可靠性?
    一次残缺的 HTTP 申请所经的步骤
    HTTP 协定理解么?HTTP 是基于 TCP 还是 UDP 的?
    HTTP 报文的内容简略说一下!HTTP 申请报文和响应报文中有哪些数据?
    HTTP 和 HTTPS 的区别理解么?
    HTTP 申请有哪些常见的状态码?
    HTTP 长连贯和短连贯理解么?
    Cookie 和 Session 的关系
    URI 和 URL 的区别是什么?

    算法和数据结构

    算法

  41. LRU 算法理解吗?你能实现一个吗?
  42. 写排序算法(快排、堆排)
  43. 应用数组实现一个栈
  44. 应用数组实现一个队列
  45. 实现一个链表、反转链表、
  46. ……

    数据结构

  47. 数组 vs 链表
  48. 栈的利用场景
  49. 队列的分类、利用场景
  50. 红黑树的特点、红黑树 vs 二叉查找树
  51. 哈希表、哈希表利用场景
  52. 布隆过滤器理解吗?
  53. ……

    零碎设计

    设计模式

  54. 何为设计模式?有哪些常见的设计模式?
  55. 单例模式理解么?说一下单例模式的应用场景。手写一个单例模式的实现。
  56. 观察者模式理解么?说一下观察者模式的应用场景。
  57. 工厂模式理解么?说一下工厂模式的应用场景。
  58. 责任链模式理解么?哪些开源我的项目(Netty、MyBatis …)中用到了责任链模式?怎么用的?
  59. SOLID 准则理解么?简略谈谈本人对于繁多职责准则和开闭准则的了解。
  60. 浏览 Spring 源码的时候什么设计模式最让你影响粗浅?能简略讲讲吗?

    常见框架

    Spring

  61. 什么是 Spring 框架?
  62. 列举一些重要的 Spring 模块?
  63. 谈谈本人对于 Spring IoC 和 AOP 的了解
  64. Spring Bean 的生命周期说一下
  65. Spring 中的 bean 的作用域有哪些?
  66. 拦截器和过滤器理解么?
  67. Spring 动静代理默认用哪一种
  68. hibernate 和 mybatis 区别
  69. Spring Boot 和 Spring 的区别
  70. 说出应用 Spring Boot 的次要长处
  71. 什么是 Spring Boot Starter?
  72. 介绍一下 @SpringBootApplication 注解
  73. Spring Boot 的主动配置是如何实现的?
  74. Spring Boot 反对哪些嵌入式 web 容器?

    Netty

  75. BIO,NIO 和 AIO 有啥区别?
  76. Netty 是什么?为啥不间接用 NIO 呢?
  77. 为什么要用 Netty?Netty 利用场景理解么?
  78. 介绍一下 Netty 的外围组件?
  79. Bootstrap 和 ServerBootstrap 理解么?
  80. NioEventLoopGroup 默认的构造函数会起多少线程?
  81. Netty 线程模型理解么?
  82. 什么是 TCP 粘包 / 拆包? 有什么解决办法呢?
  83. Netty 长连贯、心跳机制理解么?

    权限认证

  84. 认证 (Authentication) 和受权 (Authorization)的区别是什么?
  85. 什么是 Cookie ? Cookie 的作用是什么? 如何在服务端应用 Cookie ?
  86. Cookie 和 Session 有什么区别?如何应用 Session 进行身份验证?
  87. 如果没有 Cookie 的话 Session 还能用吗?
  88. 为什么 Cookie 无奈避免 CSRF 攻打,而 token 能够?
  89. 什么是 Token? 什么是 JWT? 如何基于 Token 进行身份验证?
  90. 什么是 OAuth 2.0?
  91. 什么是 SSO(单点登录)?

    微服务 / 分布式

    RPC

    RPC 根底:

  92. 理解 RPC 吗?有哪些常见的 RPC 框架?
  93. 如果让你本人设计 RPC 框架你会如何设计?
  94. 服务之间的调用为啥不间接用 HTTP 而用 RPC?

    Dubbo:

  95. Dubbo 理解吗?
  96. Dubbo 的工作原理理解么?注册核心表演了什么角色?注册核心挂了能够持续通信吗?
  97. Dubbo 的负载平衡策略理解么?
  98. Dubbo 的 spi 机制理解么?带来了啥益处?

    音讯队列

  99. 为什么要用音讯队列?
  100. 比照一下常见的音讯队列?
  101. 如何保障音讯不被反复生产?
  102. 如何保障音讯生产的程序性?

    分布式 ID

  103. 何为 ID?
  104. 何为分布式 ID?
  105. 一个合格的分布式 ID 须要满足什么要求?
  106. 分布式 ID 常见的生成办法有哪些?(数据库主键自增、数据库的号段模式、UUID、SNOWFLAKE 等等)
  107. 其余(网关、限流 …)
  108. 为什么要网关?
  109. 为什么要用分布式锁?有哪些实现形式?
  110. 限流的算法有哪些?
  111. 什么是服务熔断?什么是服务降级?
  112. 为什么要分布式 id?分布式 id 生成策略有哪些?
  113. 微服务下为什须要链路追踪零碎?

    数据库

    MySQL

    根底

  114. 非关系型数据库和关系型数据库的区别?
  115. 事务的四大个性理解么?
  116. MySQL 事务隔离级别?默认是什么级别?
  117. 乐观锁与乐观锁的区别?
  118. MySQL 数据库两种存储引擎的区别?

    索引

  119. 为什么索引能进步查问速度?
  120. 汇集索引和非汇集索引的区别?非汇集索引肯定回表查问吗?
  121. 索引这么多长处,为什么不对表中的每一个列创立一个索引呢?(应用索引肯定能进步查问性能吗?)
  122. 索引底层的数据结构理解么?Hash 索引和 B+ 树索引优劣剖析
  123. B+ 树做索引比红黑树好在哪里?
  124. 最左前缀匹配准则理解么?
  125. 什么是笼罩索引

    Redis

  126. 分布式缓存常见的技术选型计划有哪些?说一下 Redis 和 Memcached 的区别和共同点
  127. 说一下有缓存状况下查问数据和批改数据的流程。
  128. Redis 有哪些数据结构?SDS 理解么?
  129. Redis 内存满了怎么办?
  130. Redis 内存淘汰算法除了 LRU 还有哪些?
  131. Redis 给缓存数据设置过期工夫有啥用?Redis 是如何判断数据是否过期的呢?
  132. Redis 事务理解么?(Redis 能够通过 MULTI,EXEC,DISCARD 和 WATCH 等命令来实现事务功
  133. 缓存穿透和缓存雪崩问题理解么?有哪些解决办法?
  134. 如何基于 Redis 实现分布式锁?

    进阶

  135. 一条 SQL 语句在 MySQL 中如何执行的?
  136. explain 命令理解么?
  137. 简略说一下 SQL 调优思路。
  138. 简略说一下大表优化的思路。
  139. 分库分表理解么?为什么要分库分表?有哪些常见的分库分表工具(sharding-jdbc、TSharding、MyCAT…)?

    零碎设计 / 场景题

  140. 如果有 10 亿个数,只有一个反复,内存只能放下 5 亿个数,怎么找到这个反复的数字?
  141. 如何设计一个秒杀零碎(服务端、数据库、分布式)?分布式系统的设计?
  142. 有一个服务器专门接管大量申请,怎么设计?
  143. 如果让你本人设计 RPC 框架你会如何设计?
  144. 怎么疾速呈现一个 stackoverflow 谬误?

    其余问题

    自我介绍。

  145. 说说你的我的项目中的亮点有哪些。
  146. 画一下你的我的项目的架构图。
  147. Restful 理解吗?简略说一下本人对它的意识,如果我要返回一个 boolean 类型的数据怎么办?

    经验总结

  148. 多面试,不要胆怯失败,多总结经验。
  149. 尽早筹备,不论是找工作前、面试前还是面试后。
  150. 相熟本人的简历。
  151. 电话和视频面试很平时,面试前提前准备一下。

保持!offer 尽管可能会早退,然而只有不放弃,就肯定不会缺席。须要上述材料可点击下方链接

「Java 学习 + 面试指南」

正文完
 0