首页 > 编程语言 >Java高频面试题和答案

Java高频面试题和答案

时间:2023-04-28 19:31:55浏览次数:39  
标签:面试题 Java 哪些 Spring 什么 ZooKeeper Redis JVM 高频


一、Java 基础篇

  1. Object 有哪些常用方法?大致说一下每个方法的含义
  2. Java 创建对象有几种方式?
  3. 获取一个类对象的方式有哪些?
  4. ArrayList 和 LinkedList 的区别有哪些?
  5. 用过 ArrayList 吗?说一下它有什么特点?
  6. 有数组了为什么还要搞个 ArrayList 呢?
  7. 说说什么是 fail-fast?
  8. Hashtable 与 HashMap 的区别
  9. HashMap 中的 key 我们可以使用任何类作为 key 吗?
  10. HashMap 的长度为什么是 2 的 N 次方呢?
  11. HashMap 与 ConcurrentHashMap 的异同
  12. 红黑树有哪几个特征?
  13. 说说你平时是怎么处理 Java 异常的
  14. finally 模块执行了吗?是先执行 return 还是先执行 finally 模块?返回什么?

二、JVM 篇
15. Java 类加载器有几种?
16. 说一下有哪些类加载场景?
17. 说说 Java 类加载机制是什么?说说 new 创建一个普通对象的过程?
18. 说说类的生命周期?
19. 什么是双亲委派模型?
20. 如何破坏双亲委派模型?
21. 能不能自己也写一个 java.lang.String 类?
22. 说一下 JVM 运行时数据区有哪些?分别说一下它们的功能
23. 方法区和永久代有什么区别?
24. JVM 运行时数据区哪些地方会产生内存溢出?
25. 为什么要用 metaspace 替换 permspace 呢?
26. 熟悉哪些 JVM 调优参数?
27. Java 对象的引用类型有哪些?
28. JVM 垃圾回收算法有哪些?
29. 垃圾收集器有哪些?
30. 说说 JVM 中内存的分配与回收策略

三、Dubbo 篇
31. 说说一次 Dubbo 服务请求流程?
32. 说说 Dubbo 工作原理
33. Dubbo 支持哪些协议?
34. 注册中心挂了,consumer 还能不能调用 provider?
35. 怎么实现动态感知服务下线的呢?
36. Dubbo 负载均衡策略?
37. Dubbo 容错策略
38. Dubbo 动态代理策略有哪些?
39. 说说 Dubbo 与 Spring Cloud 的区别?
40. 说说 TCP 与 UDP 的区别,以及各自的优缺点
41. 说一下 HTTP 和 HTTPS 的区别
42. 说说 HTTP、TCP、Socket 的关系是什么?
43. 说一下 HTTP 的长连接与短连接的区别

四、MyBatis 篇
44. 说说 MyBatis 的缓存
45. JDBC 编程有哪些步骤?
46. 说一下 MyBatis 中使用的 #和 $ 有什么区别
47. MyBatis 中比如 UserMapper.java 是接口,为什么没有实现类还能调用?
48. MyBatis 中见过什么设计模式?
五、MySQL 篇
49. 简单说说在 MySQL 中执行依据查询 SQL 是如何执行的?
50. MySQL 有哪些存储引擎?
51. MySQL 中 varchar 与 char 的区别?varchar(30) 中的 30 代表的涵义?
52. int(11) 中的 11 代表什么涵义?
53. 为什么 SELECT COUNT(*) FROM table 在 InnoDB 比 MyISAM 慢?
54. 说说数据库的三范式和反模式
55. 在设计数据库表的时候,字段用于存储金额、余额时,选择什么类型比较好?
56. 大概说说 InnoDB 与 MyISAM 有什么区别?
57. 什么是索引?
58. 索引有什么优缺点?
59. MySQL 索引类型有哪些?
60. 什么时候不要使用索引?
61. 使用 MySQL 的索引应该注意些什么?
62. 怎么知道一条查询语句是否用到了索引,用了什么类型的索引?
63. 说说什么是 MVCC?
64. MVCC 可以为数据库解决什么问题?
65. 说说 MVCC 的实现原理
66. 什么是死锁?
67. MySQL 事务隔离级别?
68. 请说说 MySQL 数据库的锁?
69. 说说什么是锁升级?
70. 说说悲观锁和乐观锁
71. 怎样尽量避免死锁的出现?

六、RabbitMQ 篇
72. 看你简历上写了 RabbitMQ,通常会问:为什么要用 RabbitMQ?
73. 可能你讲了上面三个 RabbitMQ 的优点后,会继续问:使用 RabbitMQ 容易带来什么问题?
74. 那么多消息队列,为什么选 RabbitMQ 呢?
75. RabbitMQ 中什么是死信队列?
76. 如何处理死信队列?
77. 怎么保证消息不会被丢失?
78. RabbitMQ 怎么高可用呢?
79. RabbitMq 怎么保证消息的顺序性?
80. 如果有大量消息持续积压在队列了,怎么处理?

七、Redis 篇
81. 为什么要用缓存
82. 为什么 使用 Redis 而不是用 Memcached 呢?
83. 为什么 Redis 单线程模型效率也能那么高?
84. 说说 Redis 的线程模型
85. 说一下 Redis 有什么优点和缺点
86. Redis 缓存刷新策略有哪些?
87. Redis 持久化方式有哪些?以及有什么区别?
88. 持久化有两种,那应该怎么选择呢?
89. 怎么使用 Redis 实现消息队列?
90. 熟悉哪些 Redis 集群模式?
91. 缓存和数据库谁先更新呢?

八、Spring Boot 篇
92. Spring Boot 提供了哪些核心功能?
93. Spring Boot 核心注解是什么?
94. 说说 Spring Boot 的自动装配原理
95. Spring Boot 常用 starter 有哪些?
96. Spring 中的 starter 是什么?
97. Spring Boot 有什么优缺点?
98. 读取配置文件中配置项的有哪些方法?

九、Spring 篇
99. Spring 中 ApplicationContext 和 BeanFactory 的区别
100. 说一下你对 Spring IOC 的理解
101. Spring IOC 有什么优点?
102. Bean 的生命周期
103. Spring Bean 的作用域有哪些?
104. Spring 是怎么管理事务的?
105. 说说你对 Spring AOP 的理解
106. Spring 中用到了哪些设计模式?
107. Spring 框架中的单例 Bean 是线程安全的么?
108. Spring 是怎么解决循环依赖的?

十、ZooKeeper 篇
109. 说说 ZooKeeper 是什么?
110. ZooKeeper 有哪些应用场景?
111. ZooKeeper 有哪些节点类型?
112. 请描述一下 ZooKeeper 的通知机制是什么?
113. ZooKeeper 对节点的 watch 监听通知是永久的吗?
114. ZooKeeper 集群中有哪些角色?
115. ZooKeeper 集群中 Server 有哪些工作状态?
116. ZooKeeper 集群中是怎样选举 leader 的?
117. ZooKeeper 是如何保证事务的顺序一致性的呢?
118. ZooKeeper 集群中各服务器之间是怎样通信的?
119. ZooKeeper 分布式锁怎么实现的?

十一、并发编程篇
120. 通常创建线程有几种方式?
121. 说说线程的生命周期
122. 说说 synchronized 的使用和原理
123. synchronized 和 ReentrantLock 区别
124. 什么是线程安全?
125. 线程安全需要保证几个基本特征
126. 说一下线程之间是如何通信的?
127. 说说你对 volatile 的理解
128. 说一下 volatile 和 synchronized 的区别?
129. Thread 调用 run 方法和调 start 方法的区别?
130. 说一下 Java 创建线程池有哪些方式?
131. 说说 ThreadLocal 底层原理是什么,怎么避免内存泄漏?
132. 说说你对 JUC 下并发工具类
133. CyclicBarrier 和 CountdownLatch 有什么区别?

十二、设计模式篇
134. 你都熟悉哪些设计模式

十三、其他篇
136. 有 8 个球(大小颜色都一模一样),其中一个球比其他 7 个球中的任何一个都重,使用天平秤最多几次能找到最重的那个球?
137. 分布式幂等性如何设计?
138. 简单一次完整的 HTTP 请求所经历的步骤?
139. 说说分布式事务解决方案有哪些?
140. 说说常用的 JVM 调优命令和工具有哪些?
141. 说说你对 JVM 内存溢出和内存泄漏的理解
142. 说说 JVM 中有哪些常用参数?
143. 关于怎么准备面试,怎么应对面试,怎么和面试官聊等软实力

标签:面试题,Java,哪些,Spring,什么,ZooKeeper,Redis,JVM,高频
From: https://blog.51cto.com/u_11702014/6235419

相关文章

  • JavaBlog2
    一、前言本次博客文章主要是关于java课程第二阶段关于PTA题目集、超星作业以及期中考试的总结。相较于第一阶段的作业总结而言此次作业更加针对于总结在面向对象过程中的三大技术特性,即封装性、继承性和多态性,以及相关一些面向对象设计过程中的一些基本原则的理解和分析此阶段作......
  • java设计单链表
    packagelinked;/***@date2023/4/2622:51*@description单链表*/publicclassSingleLinkedList{privateintsize=0;privateNodehead;privateNodetail;publicstaticclassNode{privateObjectdata;privateNodenext;......
  • Java重写源码中的方法
    重写步骤:1.找到你所要重写的方法的所在类,查看其中的路径;2.在我们的src目录下新建一个同包名同类名的类;3.将jar包中的重写方法所在类的所有代码复制到我们新建的同包名同类名的类中;4.在我们新建的同包名同类名的类中修改对应的方法中的代码,注意要保持方法中的参数不要发生改变,也......
  • java if和switch语句
    if语句:publicclassifguanjianzi{publicstaticvoidmain(String[]args){if(2<1){System.out.println("1234567");}else{System.out.println("12");}}}switch语句......
  • java.io.IOException: line too long
    java.io.IOException:linetoolong 在打jar包时,manifest.mf中所依赖的所有jar路径过长,结果报错说IOException("linetoolong") java.io.IOException:linetoolongatjava.util.jar.Attributes.read(Attributes.java:362)atjava.util.jar.Manifest.read(......
  • Java 读取UTF-8文件中文乱码
    Java读取UTF-8文件中文乱码 InputStreamReaderisr=newInputStreamReader(newFileInputStream(file),"UTF-8");BufferedReaderread=newBufferedReader(isr);  例如:privatestaticStringreadUTF8File(StringfilePath)throwsIOException{ InputStreamReaderi......
  • 超简单!Java 项目自动生成接口文档教程
    你还在用word、markdown埋头苦干写接口文档?写文档这件事恐怕是每个开发都万分抗拒的事情了。本篇文章详细教你如何利用插件工具,在IDEA中自动生成API文档。先来看看从IDEA中生成文档的效果如下图。下图是使用Apifox插件(Apifoxhelper)从IDEA生成的文档(右)效果。第一步......
  • Java 项目中一种简单的动态修改配置即时生效的方式 WatchService
    这种方式仅适合于比较小的项目,例如只有一两台服务器,而且配置文件是可以直接修改的。例如Springmvc以war包的形式部署,可以直接修改resources中的配置文件。如果是Springboot项目,还想用这种方式的话,就要引用一个外部可以编辑的文件,比如一个固定的目录,因为springboot大多......
  • Java继承
    Java继承继承的概念基础主要解决的问题是:共性抽取特点:子类可以拥有父类的"内容"子类还可以拥有自己的专有内容继承的格式在继承关系中,"子类就是一个父类,子类可以被当做父类看待."父类的格式定义:(一个普通的类的定义)子类的格式定义:publicclass子类名称exten......
  • Java多线程之---用 CountDownLatch 说明 AQS 的实现原理
    本文基于jdk1.8。CountDownLatch的使用前面的文章中说到了volatile以及用volatile来实现自旋锁,例如java.util.concurrent.atomic包下的工具类。但是volatile的使用场景毕竟有限,很多的情况下并不是适用,这个时候就需要synchronized或者各种锁实现了。今天就来说一下几......