前言很多朋友问今年有没有整理一些面试题。最近抽空整理了一道Java面试题。或许这道面试题并不足以涵盖所有的Java题,但有了它,我相信足以应对目前市面上绝大部分的Java面试题,因为这篇文章在深度和广度上都涵盖了。很多知识点。本次面试题包含的模块分为19个模块,分别是:Java基础、容器、多线程、反射、对象复制、JavaWeb、异常、网络、设计模式、Spring/SpringMVC、SpringBoot/SpringCloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM。本文主要是为广大读者朋友们整理一份比较实用的面试清单,一起进入正题吧。1、Java基础系列面试题中JDK和JRE有什么区别?==和等于有什么区别?如果两个对象的hashCode()相同,那么equals()也一定为真,对吧?final在Java中做什么?什么是数学。round(-1.5)等于Java?String是底层数据类型之一吗?Java中有哪些用于操作字符串的类?它们之间有什么区别?Stringstr="i"和Stringstr=newString("i")一样吗?如何反转字符串?String类的常用方法有哪些?抽象类一定要有抽象方法吗?普通类和抽象类有什么区别?抽象类可以终结吗?接口和抽象类有什么区别?Java中有多少种IO流?BIO、NIO和AIO之间有什么区别?Files的常用方法有哪些?2、关于Java容器的容器系列面试题有哪些?Collection和Collections和有什么不一样?列表、集合、映射之间有什么区别?HashMap和Hashtable有什么区别?如何决定使用HashMap还是TreeMap?说说HashMap的实现原理?说说HashSet的实现原理?ArrayList和LinkedList有什么区别?如何实现数组与List的转换?ArrayList和Vector有什么区别?Array和ArrayList有什么区别?队列中的poll()和remove()有什么区别?哪些集合类是线程安全的?什么是迭代器Iterator?如何使用迭代器?有什么特点?迭代器和列表迭代器有什么区别?如何保证一个集合不能被修改?3、多线程面试题中的并行和并发有什么区别?线程和进程的区别?什么是守护线程?创建线程的方法有哪些?可运行和可调用之间有什么区别?线程有哪些状态?sleep()和wait()有什么区别?notify()和notifyAll()有什么区别?线程的run()和start()有什么区别?创建线程池的方法有哪些?线程池的状态是什么?线程池中的submit()和execute()这些方法之间有什么区别?Java程序中如何保证多线程运行的安全?多线程中同步锁升级的原理是什么?什么是死锁?如何防止死锁?什么是线程本地?有哪些使用场景?说说synchronized的底层实现原理?synchronized和volatile有什么区别?synchronized和Lock有什么区别?synchronized和ReentrantLock有什么区别?说说原子的原理?4.反射、对象复制、JavaWeb面试题什么是反射?什么是Java序列化?什么时候需要序列化?什么是动态代理?有哪些应用?如何实现动态代理?为什么要使用克隆?如何实现对象克隆?深拷贝和浅拷贝有什么区别?JSP和servlet之间有什么区别?JSP有哪些内置对象?有哪些功能?告诉我JSP的4个作用域?session和cookie有什么区别?说说session的工作原理?如果客户端禁止cookies,session还能用吗?springmvc和struts有什么区别?如何避免SQL注入?什么是XSS攻击以及如何避免它?什么是CSRF攻击以及如何避免它?5、异常、网络、设计模式面试题中的throw和throws有什么区别?final、finally、finalize和有什么不一样?try-catch-finally的哪一部分可以省略?在try-catch-finally中,如果catch中有return,finally还会被执行吗?常见的异常类有哪些?http响应码301和302代表什么?有什么不同?转发和重定向有什么区别?简述tcp和udp的区别?为什么tcp要握三次手,两次就不行了?为什么?说说tcp粘包是怎么产生的?OSI模型的七层是什么?get和post请求有什么区别?如何实现跨域?说说JSONP的实现原理?说说你熟悉的设计模式?简单工厂和抽象工厂有什么区别?六、Spring、SpringMVC、SpringBoot、SpringCloud系列面试题为什么要用spring?解释什么是aop?解释什么是ioc?spring的主要模块有哪些?spring常用的注入方式有哪些?spring中的bean是线程安全的吗?spring支持什么样的bean作用域?spring自动装配bean的方式有哪些?spring事务的实现方式有哪些?说说spring事务隔离?说说springmvc运行过程?springmvc有哪些组件?@RequestMapping的作用是什么?@Autowired是做什么的?什么是弹簧靴?为什么要使用弹簧靴?106.springboot的核心配置文件是什么?springboot配置文件有哪几种类型?有什么不同?springboot实现热部署的方式有哪些?jpa和hibernate有什么区别?什么是春云?springcloud断路器的作用是什么?springcloud的核心组件有哪些?七、Hibernate、MyBatis系列面试题为什么要用hibernate?什么是ORM框架?如何在hibernate中查看控制台打印出来的SQL语句?hibernate有多少种查询方法?hibernate实体类可以定义为final吗?在休眠中使用Integer和int进行映射有什么区别?休眠是如何工作的?get()和load()有什么区别?说说hibernate的缓存机制?休眠对象有哪些状态?123.hibernate中getCurrentSession和openSession有什么区别?124.hibernate实体类是否必须有无参数构造函数?为什么?#{}和MyBatis有什么区别?MyBatis有多少种分页方法?RowBounds是否一次查询所有结果?为什么?MyBatis逻辑分页和物理分页有什么区别?129.MyBatis是否支持延迟加载?懒加载的原理是什么?说说MyBatis的一级缓存和二级缓存?MyBatis和hibernate有什么区别?132.MyBatis有哪些Executors?MyBatis分页插件的实现原理是什么?MyBatis是怎么写自定义插件的?8、RabbitMQ、Kafka、Zookeeper系列面试题的使用场景有哪些?RabbitMQ有哪些重要作用?RabbitMQ有哪些重要组件?vhost在RabbitMQ中的作用是什么?RabbitMQ消息是如何发送的?RabbitMQ如何保证消息的稳定性?RabbitMQ如何避免消息丢失?保证消息持久化成功的条件有哪些?RabbitMQ持久化的缺点是什么?RabbitMQ有多少种广播类型?RabbitMQ是如何实现延迟消息队列的?RabbitMQ集群有什么用?RabbitMQ节点有哪些类型?搭建RabbitMQ集群需要注意哪些问题?每个RabbitMQ节点都是其他节点的完整副本吗?为什么?如果RabbitMQ集群中唯一的磁盘节点崩溃会怎样?RabbitMQ对集群节点的停止顺序有要求吗?kafka可以脱离zookeeper独立使用吗?为什么?Kafka有多少种数据保留策略?Kafka设置了7天10G同时清空数据。到了第五天,消息达到了10G。这个时候Kafka会怎么处理呢?什么会导致kafka运行缓慢?使用Kafka集群需要注意什么?什么是动物园管理员?zookeeper有哪些功能?zookeeper有几种部署方式?zookeeper是如何保证主从节点的状态同步的?为什么集群中会有master节点?集群中有3台服务器,其中一个节点宕机了。这个时候还能用zookeeper吗?说说zookeeper的通知机制?9、MySQL系列面试题库的三大范式是什么?一张自增表一共有7条数据。删除最后2条数据,重启MySQL数据库,插入另一条数据。这个时候的id是多少?如何获取当前数据库版本?告诉我什么是酸?char和varchar有什么区别?float和double有什么区别?170.MySQL中innerjoin、leftjoin、rightjoin有什么区别?MySQL索引是如何实现的?如何验证MySQL索引是否满足要求?谈数据库事务隔离?说说MySQL常用的引擎?说说MySQL行锁和表锁?说说乐观锁和悲观锁?解决MySQL问题的工具有哪些?178.如何优化MySQL的性能?10.什么是Redis179.Redis?有哪些使用场景?Redis有什么特点?Redis和内存缓存有什么区别?为什么Redis是单线程的?什么是缓存穿透?如何处理?Redis支持哪些数据类型?Redis支持哪些Java客户端?jedis和Redisson有什么区别?如何保证缓存和数据库数据的一致性?Redis有几种持久化方式?Redis是如何实现分布式锁的?Redis分布式锁有什么缺点?Redis是如何做内存优化的?Redis淘汰策略有哪些?Redis常见的性能问题有哪些?如何解决?11.JVM系列面试题说说JVM的主要组成部分?及其作用?说说JVM运行时数据区?说说JVM运行时数据区?说说栈的区别?197.什么是队列和栈?有什么不同?什么是父母委派模式?说说类加载的执行过程?如何判断对象是否可以回收?Java中的引用类型是什么?告诉我JVM有哪些垃圾收集算法?告诉我JVM有哪些垃圾收集器?告诉我更多关于CMS垃圾收集器的信息?什么是新生代垃圾收集器和老年代垃圾收集器?有什么不同?简述分代垃圾收集器是如何工作的?告诉我有关JVM调优工具的信息?常用的JVM调优参数有哪些?学习更多JAVA知识和技能,关注和私信博主(666),最重要的是增加自己的知识储备,做好准备。最后给大家分享Spring系列学习笔记和面试题,包括spring面试题和springcloud面试题。,springboot面试题,spring教程笔记,springboot教程笔记,最新阿里巴巴开发手册(63页PDF汇总),2022年Java面试手册。共整理出1184页PDF文档。私信博主(666)收到,祝大家更上一层楼!!!
