史上最全 498 道面试题

Java 面试题:
  1. 什么是 Java 虚拟机?为什么 Java 被称作是无关的编程语言?

  2. JDK 和 JRE 的区别是什么?

  3. static 关键字是什么意思?Java 中是否可以覆盖(override)一个 private 或者是 strtic 的方法

  4. 是否可以在 strtic 环境中访问 strtic 变量?

  5. Java 支持的数据类型有哪些?什么是自动拆装箱?

  6. Java 中的方法覆盖(Overriding)和方法重载(Overriding)是什么意思?

  7. Java 中,什么是构造函数重载?什么是复制构造函数

  8. Java 支持多继承么?

  9. 接口和抽象类的区别是什么?

  10. 什么是值传递和引用传递

  11. 进程和线程的区别是什么?

  12. 创建线程有几种不同的方式?你喜欢那一种?为什么?

  13. 概况的解释下线程的几种可用状态

  14. 同步方法和同步代码块的区别是什么?

  15. 在监视器(Monitor)内部,是如何做线程同步的?程序应该做那种级别的同步?

  16. 什么是死锁(deadlock)?

  17. 如何确保 N 个线程可以访问 N 个资源同时又不导致死锁?

  18. Java 集合类框架的基本接口有哪些?

  19. 为什么集合类没有实现 Cloneable 和 Serializable 接口?

  20. 什么是迭代器(Iterator)?

  21. Iterator 和 LististIterator 的区别是什么?

  22. 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?

  23. Java 中的 HashMap 的工作原理是什么?

  24. hashCode()和 equals()方法的重要性体现在什么地方?

  25. HashMap 和 Hashtable 有什么区别?.数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用 Array 而不是 ArrayList?

  26. ArrayList 和 LinkedList 有什么区别?

  27. Comparable 和 Comparatoromparator 接口是干什么的?列出他们的区别

  28. 什么是 Java 优先级队列(PriorityQueue)?

  29. 你了解大 O 符号(big-O notation)么?你能给出不同数据结构的例子么?

  30. 如何权衡是使用无序的数组还是有序的数组?

  31. Java 集合类框架的最佳实践有哪些?

  32. Enumeration 接口和 Iterator 接口的区别有哪些?

  33. HashSet 和 TreeSet 有什么区别?

  34. Java 中辣椒回收有什么目的?什么时候进行垃圾回收

  35. System.ge()和 Runtime.gc()会做什么事情?

  36. finalize()方法什么时候被条用?析构函数(finalization)的目的是什么?

  37. 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存

  38. Java 堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?

  39. 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?

  40. 在 Java 中,对象什么时候可以被垃圾回收?

  41. JVM 的永久代中会发生垃圾回收么?

  1. Java 中的两种异常类型是什么?他们有什么区别?

  2. Java 中 Exception 和 Error 有什么区别?

  3. throw 和 thro ws 有什么区别?异常处理的时候,finally 代码块的重要性是什么?

  4. 异常处理完成以后,Exception 对象会发生什么变化?

  5. finally 代码块和 finalize()方法有什么区别?

  6. 什么是(Applet)?

  7. 解释一下 Applet 的生命周期

  8. 当 Applet 被载入的时候会发生什么?

  9. Applet 和普通的 Java 应用程序有什么区别?

  10. Java Applet 有哪些限制条件?

  11. 什么是不受信任的 Applet?

  12. 从网络上加载的 Applet 从本地文件系统加载的 Applet 有什么区别

  13. Applet 类加载器是什么?它会做哪些工作?

  14. Applet 安全管理器是什么?它会做哪些工作?

  15. 弹出式选择菜单(Choice)和列表(List)有什么区别

  16. 什么是布局管理器?

  17. 滚动条(Scrollbar)和滚动面板(JScrollPane)有什么区别?

  18. 哪些 Swing 的方法是线程安全的?

  19. 说出三种主持重绘(painting)的组件

  20. 什么是裁剪(clipping)?

  21. MenuItem 和 CheckboxMenuItem 的区别是什么?

  22. 边缘布局(BorderLayout)里面的元素是如何布局的?

  23. 网格包布局(GridBagLayout)里面的元素是如何布局的

  24. Window 和 Frame 有什么区别?

  25. 裁剪(clipping)和重绘(repainting)有什么关系?

  26. 事件监听器接口(event-listener interface)和事件适配器(event-adapter)有什么关系

  27. GUI 组件如何处理它自己的事件?

  28. Java 的布局管理器比传统的窗口系统有哪些优势?

  29. Java 的 Swing 组件使用了那种设计模式?

  30. 什么是 JDBC?

  31. 解释下驱动(Driver)在 JDBC 中的角色

  32. Class.forName()方法有什么作用?

  33. PreparedStatement 比 Statement 有什么优势?

  34. 什么时候用 CallableStatement?用来准备 CallableStatement 的方法是什么?

  35. 数据库连接池是什么意思?

  36. 什么是 RMI?

  37. RMI 体系结构的基本原则是什么?

  38. RMI 体系结构分哪几层?

  39. RMI 中的远程接口(Remote Interface)扮演了什么样的角色?

  40. java.rmi.Naming 类扮演了什么样的角色?

  41. RMI 的绑定(Binding)是什么意思?

  42. Naming 类的 bind()和 rebind()方法有什么区别?

  43. 让 RMI 程序能正确运行有哪些步骤?

  44. RMI 在 stub 扮演了什么样的角色?

  45. 什么是分布式垃圾回收(DGC)?它是如何工作的?

  46. RMI 中使用 RMI 安全管理器(RMISecurityManager)的目的是什么?

  47. 解释下 Marshalling 和 demarsahalling

  48. 解释下 Serialization 和 Deserialization

  49. 什么是 Servlet?

  50. 说一下 Servlet 的体系结构

  51. Applet 和 Servlet 有什么区别?

  52. GenericServlet 和 HttpServlet 有什么区别?

  53. 解释下 Servlet 的生命周期

  54. doGet()方法和 doPost()方法有什么区别?

  55. 什么是 Web 应用程序?

  56. 什么是服务端包含(Server Side Include)?

  57. 什么是 Servlet 链(Servlet Chaining)?

  58. 如何做到是哪一个客户端的机器正在请求你的 Servlet?

  59. HTTP 响应的结构是怎么样的?

  60. 什么是 cookie?session 和 cookie 有什么区别?

  61. 浏览器和 Servlet 通信使用的是什么协议?

  62. 什么是 HTTP 隧道?

  63. sendRedirect()和 forwand()方法有什么区别

  64. 什么是 URL 编码和 URL 解码

  65. 什么是 JSP 页面

  66. JSP 请求是如何被处理的

  67. JSP 有什么优点

  68. 什么是 JSP 指令(Directive)?JSP 中有哪些不同类型的指令

  69. 什么是 JSP 动作(JSP action)

  70. 什么是 Scriptlets

  71. 声明(Decalaration)在哪里?

  72. 什么是表达式(Expression)

  73. 隐含对象是什么意思?有哪些隐含对象

开源框架面试题

  1. BeanFactory 和 ApplicationContext 有什么区别

  2. Spring Bean 的生命周期

  3. Spring IOC 如何实现

  4. 说说 Spring AOP

  5. Spring AOP 实现原理

  6. 动态代理(cglib 与 JDK)

  7. Spring 事务实现方式

  8. Spring 事务底层原理

  9. Spring 事务底层原理

  10. Spring MVC 运行流程

  11. Spring MVC 启动流程

  12. Spring 的单例实现原理

  13. Spring 框架中用到了哪些设计模式

  14. 为什么选择 Netty

  15. 说说业务中,Netty 的使用场景

  16. 原生的 NIO 在 JDK 1.7 版本存在 epoll bug

  17. 什么是 TCP 粘包/拆包

  18. TCP 粘包/拆包的解决办法

  19. Netty 线程模型

  20. 说说 Netty 的零拷贝

  21. Netty 内部执行流程

设计模式

  1. 请列举出在 JDK 中几个常用的设计模式?

  2. 什么是设计模式?你是否在你的代码里面使用过任何设计模式?

  3. Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式

  4. 在 Java 中,什么叫观察者设计模式(observer design pattern)?

  5. 使用工厂模式最主要的好处是什么?在哪里使用?

  6. 举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是层次?

  7. 在 Java 中,为什么不允许从静态方法中访问非静态变量?

  8. 设计一个 ATM 机,请说出你的设计思路?

  9. 在 Java 中,什么时候用重载,什么时候用重写?

  10. 举例说明什么情况下会更倾向于使用抽象类而不是接口

spring 25 题常见面试问题

  1. 什么是 Spring 框架?Spring 框架有哪些主要模块?

  2. 使用 Spring 框架能带来哪些好处?

  3. 什么是控制反转(IOC)?什么是依赖注入?

  4. 请解释下 Spring 框架中的 IoC?

  5. BeanFactory 和 ApplicationContext 有什么区别?

  6. Spring 有几种配置方式?

  7. 如何用基于 XML 配置的方式配置 Spring?

  8. 如何用基于 Java 配置的方式配置 Spring?

  9. 怎样用注解的方式配置 Spring?

  10. 请解释 Spring Bean 的生命周期?

  11. Spring Bean 的作用域之间有什么区别?

  12. 什么是 Spring inner beans?

  13. Spring 框架中的单例 Beans 是线程安全的么?

  14. 请举例说明如何在 Spring 中注入一个 Java Collection?

  15. 如何向 Spring Bean 中注入一个 Java.util.Properties?

  16. 请解释 Spring Bean 的自动装配?

  17. 请解释自动装配模式的区别?

  18. 如何开启基于注解的自动装配?

  19. 请举例解释 @Required 注解?

  20. 请举例解释 @Autowired 注解?

  21. 请举例说明 @Qualifier 注解?

  22. 构造方法注入和设值注入有什么区别?

  23. Spring 框架中有哪些不同类型的事件?

  24. FileSystemResource 和 ClassPathResource 有何区别?

  25. Spring 框架中都用到了哪些设计模式?

springbobt 22 题常见面试问题

  1. 什么是 Spring Boot

  2. Spring Boot 有哪些优点

  3. Spring Boot 的优点有

  4. Spring Boot 的优点有

  5. 如何重新加载 Spring Boot 上的更改,而无需重新启动服务器

  6. Spring Boot 中的监视器是什么

  7. 如何在 Spring Boot 中禁用 Actuator 端点安全性

  8. 如何在自定义端口上运行 Spring Boot 应用程序

  9. 什么是 YAML

  10. 如何实现 Spring Boot 应用程序的安全性

  11. 如何实现 Spring Boot 应用程序的安全性

  12. 如何使用 Spring Boot 实现分页和排序

  13. 什么是 Swagger?你用 Spring Boot 实现了它吗

  14. 什么是 Spring Profiles

  15. 什么是 Spring Batch

  16. 什么是 FreeMarker 模板

  17. 什么是 FreeMarker 模板

  18. 什么是 FreeMarker 模板

  19. 什么是 CSRF 攻击

  20. 什么是 CSRF 攻击

  21. 什么是 AOP

  22. 什么是 Apache Kafka

Redis

  1. 什么是 Redis?简述它的优缺点

  2. 什么是 Redis?简述它的优缺点

  3. redis 可以持久化其数据 redis 可以持久化其数据

  4. Redis 主要消耗什么物理资源

  5. Redis 有哪几种数据淘汰策略

  6. Redis 官方为什么不提供 Windows 版本

  7. 一个字符串类型的值能存储最大容量是多少

  8. 为什么 Redis 需要把所有数据放到内存中

  9. Redis 集群方案应该怎么做?都有哪些方案

  10. Redis 集群方案什么情况下会导致整个集群不可用

  11. MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据

  12. Redis 有哪些适合的场景

  13. Redis 支持的 Java 客户端都有哪些?官方推荐用哪个

  14. Redis 和 Redisson 有什么关系

  15. Jedis 与 Redisson 对比有什么优缺点

  16. 说说 Redis 哈希槽的概念

  17. Redis 集群的主从复制模型是怎样的

  18. Redis 集群会有写操作丢失吗?为什么

  19. Redis 集群之间是如何复制的

  20. Redis 集群最大节点个数是多少

  21. Redis 集群如何选择数据库

  22. Redis 中的管道有什么用

  23. 怎么理解 Redis 事务

  24. Redis 事务相关的命令有哪几个

  25. Redis key 的过期时间和永久有效分别怎么设置

  26. Redis 如何做内存优化

  27. Redis 回收进程如何工作的

  28. 加锁机制

  29. 锁互斥机制

  30. watch dog 自动延期机制

  31. 可重入加锁机制

  32. 释放锁机制

  33. 上述 Redis 分布式锁的缺点

  34. 使用过 Redis 分布式锁么,它是怎么实现的

  35. 使用过 Redis 做异步队列么,你是怎么用的?有什么缺点

  36. 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免

并发编程 28 题

  1. Synchronized 用过吗,其原理是什么?

  2. 你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁?

  3. 什么是可重入性,为什么说 Synchronized 是可重入锁?

  4. JVM 对 Java 的原生锁做了哪些优化?48

  5. 为什么说 Synchronized 是非公平锁?49

  6. 什么是锁消除和锁粗化?49

  7. 为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理又是什么?什么是 CAS,它有什么特性?

  8. 乐观锁一定就是好的吗?

  9. 跟 Synchronized 相比,可重入锁 ReentrantLock 其实现原理有什么不同?

  10. 那么请谈谈 AQS 框架是怎么回事儿?

  11. 请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。

  12. ReentrantLock 是如何实现可重入性的?

  13. 除了 ReetrantLock,你还接触过 JUC 中的哪些并发工具?

  14. 请谈谈 ReadWriteLock 和 StampedLock。

  15. 如何让 Java 的线程彼此同步?你了解过哪些同步器?请分别介绍下。

  16. CyclicBarrier 和 CountDownLatch 看起来很相似,请对比下呢?

  17. Java 线程池相关问题

  18. Java 中的线程池是如何实现的?

  19. 创建线程池的几个核心构造参数?

  20. 线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?

  21. 既然提到可以通过配置不同参数创建出不同的线程池,那么 Java 中默认实现好的线程池又有哪些呢?请比较它们的异同

  22. 如何在 Java 线程池中提交线程?

  23. 什么是 Java 的内存模型,Java 中各个线程是怎么彼此看到对方的变量的?

  24. 请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性?

  25. 既然 volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile 变量的运算就是并发安全的?

  26. 请对比下 volatile 对比 Synchronized 的异同。

  27. 请谈谈 ThreadLocal 是怎么解决并发安全的?

  28. 很多人都说要慎用 ThreadLocal,谈谈你的理解,使用 ThreadLocal 需要注意些什么?

MySQL 性能优化的 21 个最佳实践

  1. 为查询缓存优化你的查询

  2. EXPLAIN 你的 SELECT 查询

  3. 当只要一行数据时使用 LIMIT 1

  4. 为搜索字段建索引

  5. 在 Join 表的时候使用相当类型的例,并将其索引

  6. 千万不要 ORDER BY RAND()

  7. 避免 SELECT *

  8. 永远为每张表设置一个 ID

  9. 使用 ENUM 而不是 VARCHAR

  10. 从 PROCEDURE ANALYSE() 取得建议

  11. 尽可能的使用 NOT NULL

  12. Prepared Statements

  13. 无缓冲的查询

  14. 把 IP 地址存成 UNSIGNED INT

  15. 固定长度的表会更快

  16. 垂直分割

  17. 拆分大的 DELETE 或 INSERT 语句

  18. 越小的列会越快

  19. 选择正确的存储引擎

  20. 选择正确的存储引擎

  21. 小心“永久链接”

ZooKeeper 面试题目

  1. ZooKeeper 是什么?

  2. ZooKeeper 提供了什么?

  3. Zookeeper 文件系统

  4. 四种类型的 znode

  5. Zookeeper 通知机制

  6. Zookeeper 做了什么?

  7. zk 的命名服务(文件系统)

  8. zk 的配置管理(文件系统、通知机制)

  9. Zookeeper 集群管理(文件系统、通知机制)

  10. Zookeeper 分布式锁(文件系统、通知机制)

  11. 获取分布式锁的流程

  12. Zookeeper 队列管理(文件系统、通知机制)

  13. Zookeeper 数据复制

  14. Zookeeper 工作原理

  15. zookeeper 是如何保证事务的顺序一致性的?

  16. Zookeeper 下 Server 工作状态

  17. zookeeper 是如何选取主 leader 的?

  18. Zookeeper 同步流程

  19. 分布式通知和协调

  20. 机器中为什么会有 leader?

  21. zk 节点宕机如何处理?

  22. zookeeper 负载均衡和 nginx 负载均衡区别

  23. zookeeper watch 机制

Tomcat 面试题

  1. Tomcat 的缺省端口是多少,怎么修改?

  2. tomcat 有哪几种 Connector 运行模式(优化)?

  3. Tomcat 有几种部署方式?

  4. tomcat 容器是如何创建 servlet 类实例?用到了什么原理

  5. tomcat 如何优化?

  6. 内存调优

  7. 垃圾回收策略调优

  8. 共享 session 处理

  9. 专业点的分析工具有

  10. 添加 JMS 远程监控

  11. 关于 Tomcat 的 session 数目

  12. 监视 Tomcat 的内存使用情况

  13. 打印类的加载情况及对象的回收情况

  14. Tomcat 一个请求的完整过程

  15. Tomcat 工作模式?


#Java##面试##面试题目##后端开发##MySQL#
全部评论
感谢分享很全面,牛掰
点赞 回复 分享
发布于 2022-08-26 18:06 河南

相关推荐

点赞 14 评论
分享
牛客网
牛客企业服务