当前位置: 首页 > 后端技术 > Java

最新Java面试题、常见面试题及答案汇总

时间:2023-04-01 16:08:50 Java

Java最新常见面试题+答案汇总原文地址:https://blog.csdn.net/sufu106...九大模块:Java基础、容器、多线程、反射、对象复制、JavaWeb模块、异常、网络、设计模式、Spring/SpringMVC、SpringBoot/SpringCloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM。如下图所示:可能初学者不需要以下框架和JVM模块的知识。读者朋友们可以根据自己的情况选择相应的模块进行阅读。适合阅读群体。需要面试的初级/中级/高级java程序员。想要检查和填补空白的人。希望不断改进和扩展自己的Java技术栈的人。java面试官的具体面试问题。内容。一、Java基础1、JDK和JRE有什么区别?2.==和equals有什么区别?3、如果两个对象的hashCode()相同,equals()也一定为真吧?4.final在java中的作用是什么?5.Math.round(-1.5)在java中等于什么?6、String属于基本数据类型吗?7.java中操作字符串的类有哪些?它们之间有什么区别?8.Stringstr="i"和Stringstr=newString("i")一样吗?9.如何反转字符串?10、String类的常用方法有哪些?11.抽象类一定要有抽象方法吗?12.普通类和抽象类有什么区别?13.抽象类可以用final修饰吗?14.接口和抽象类有什么区别?15.java中IO流有几种类型?16、BIO、NIO、AIO有什么区别?17、Files的常用方法有哪些?2.容器18.java容器有哪些?19.Collection和Collections有什么区别?20.List、Set、Map有什么区别?21.HashMap和Hashtable有什么区别?22.如何决定使用HashMap还是TreeMap?23、说说HashMap的实现原理?24、说说HashSet的实现原理?25.ArrayList和LinkedList有什么区别?26.如何实现数组与List的相互转换?27.ArrayList和Vector有什么区别?28.Array和ArrayList有什么区别?29.Queue中的poll()和remove()有什么区别?30.哪些集合类是线程安全的?31.什么是迭代器Iterator?32.如何使用迭代器?有什么特点?33.Iterator和ListIterator有什么区别?34.如何保证一个集合不能被修改?3.多线程35.并行和并发有什么区别?36.线程和进程有什么区别?37.什么是守护线程?38.创建线程有哪几种方式?39.runnable和callable有什么区别?40.线程有哪些状态?41.sleep()和wait()有什么区别?42.notify()和notifyAll()有什么区别?43.线程的run()和start()有什么区别?44.创建线程池有哪几种方式?45.线程池有哪几种状态?46.线程池中的submit()和execute()方法有什么区别?47.如何保证java程序中多线程运行的安全?48.升级多线程锁的原理是什么?49.什么是死锁?50.如何防止死锁?51.什么是ThreadLocal?有哪些使用场景?52、说说synchronized的底层实现原理?53.synchronized和volatile有什么区别?54.synchronized和Lock有什么区别?55.synchronized和ReentrantLock有什么区别?56.说说原子的原理?四、反思57.什么是反思?58.什么是java序列化?什么时候需要序列化?59.什么是动态代理?有哪些应用?60.如何实现动态代理?五、对象复制61.为什么要使用克隆?62.如何实现对象克隆?63.深拷贝和浅拷贝有什么区别?6、JavaWeb64.jsp和servlet有什么区别?65.jsp有哪些内置对象?有哪些功能?66.说说jsp的4个作用域?67.session和cookie有什么区别?68.说说session的工作原理?69.如果客户端禁止cookies,session还能用吗?70.springmvc和struts有什么区别?71.如何避免sql注入?72.什么是XSS攻击,如何避免?73.什么是CSRF攻击,如何避免?7.exception74.throw和throws有什么区别?75.final、finally、finalize有什么区别?76.try-catch-finally的哪一部分可以省略?77、try-catch-finally中,如果catch中有return,finally还会执行吗?78.常见的异常类有哪些?8.网络79.http响应码301和302代表什么?有什么不同?80.转发和重定向有什么区别?81.简述tcp和udp的区别?82.tcp为什么还是需要握三次手,两次不行吗?为什么?83.说说tcp粘包是怎么产生的?84.OSI的七层模型有哪些?85.get和post请求有什么区别?86.如何实现跨域?87.说说JSONP的实现原理?九。设计模式88.说说你熟悉的设计模式?89.简单工厂和抽象工厂有什么区别?10.春季/春季MVC90。为什么要用弹簧?91.解释什么是aop?92.解释什么是ioc?93.spring的主要模块有哪些?94、spring常用的注入方式有哪些?95.spring中的bean是线程安全的吗?96.spring支持多少个bean作用域?97、spring自动组装bean有哪几种方式?98、spring事务的实现方式有哪些?99.说说spring事务隔离?100.说说springmvc的运行过程?101.springmvc有哪些组件?102.@RequestMapping的作用是什么?103.@Autowired是做什么的?11.SpringBoot/SpringCloud104.什么是springboot?105.为什么要用springboot?106.springboot的核心配置文件是什么?107、springboot的配置文件有哪几种类型?有什么不同?108、springboot实现热部署的方式有哪些?109.jpa和hibernate有什么区别?110.什么是春云?111、springcloudcircuitbreaker的作用是什么?112.SpringCloud的核心组件有哪些?12.Hibernate113.为什么要使用hibernate?114.什么是ORM框架?115.如何在hibernate中查看控制台打印出来的sql语句?116.hibernate有多少种查询方法?117.hibernate实体类可以定义为final吗?118.在hibernate中使用Integer和int做映射有什么区别?119.休眠是如何工作的?120.get()和load()有什么区别?121.谈谈hibernate缓存机制?122.hibernate对象有哪些状态?123.hibernate中getCurrentSession和openSession有什么区别?124.hibernate实体类是否必须有无参数构造函数?为什么?13.Mybatis125.mybatis中#{}和${}有什么区别?126.mybatis有几种分页方式?127.RowBounds是一次性查询所有结果吗?为什么?128.mybatis逻辑分页和物理分页有什么区别?129.mybatis是否支持懒加载?懒加载的原理是什么?130.说说mybatis的一级缓存和二级缓存?131.mybatis和hibernate有什么区别?132.mybatis有哪些Executor?133、mybatis分页插件的实现原理是什么?134.mybatis如何写自定义插件?14、RabbitMQ135.rabbitmq的使用场景有哪些?136.rabbitmq有哪些重要作用?137.rabbitmq的重要组成部分有哪些?138、rabbitmq中vhost的作用是什么?139.rabbitmq消息是如何发送的?140.rabbitmq如何保证消息的稳定性?141.rabbitmq如何避免消息丢失?142.保证消息持久化成功的条件有哪些?143.rabbitmq持久化的缺点是什么?144.rabbitmq有几种广播类型?145.rabbitmq是如何实现延迟消息队列的?146.rabbitmq集群有什么用?147.rabbitmq节点有哪几种类型?148.搭建rabbitmq集群需要注意哪些问题?149.rabbitmq的每个节点都是其他节点的完整副本吗?为什么?150.当rabbitmq集群中唯一的磁盘节点崩溃时会发生什么?151、rabbitmq对集群节点的停止顺序有要求吗?15.kafka152.kafka可以独立于zookeeper使用吗?为什么?153.Kafka有多少种数据保留策略?154.kafka设置了7天10G同时清除数据。到了第五天,消息达到了10G。这个时候Kafka会怎么处理呢?155.What'sthematter?会不会导致kafka运行变慢?156.使用kafka集群需要注意什么?16.什么是Zookeeper157.zookeeper?158.zookeeper有哪些功能?159.zookeeper有几种部署方式?160、zookeeper如何保证主从节点的状态同步?161、集群中为什么要有master节点?162、集群中有3台服务器,其中一个节点宕机。这个时候还能用zookeeper吗?163.说说zookeeper的通知机制?十七、MySql164。数据库的三大范式是什么?165、一张自增表共有7条数据,删除最后2条数据,重启mysql数据库,再插入一条数据,此时的id是多少?166.如何获取当前数据库版本?167.告诉我什么是酸?168.char和varchar有什么区别?169.float和double有什么区别?170、mysql的innerjoin、leftjoin、rightjoin有什么区别?171.mysql索引是如何实现的?172.如何验证mysql索引是否满足要求?173.说说数据库的事务隔离?174.说说mysql常用的引擎?175.说说mysql的行锁和表锁?176.谈谈乐观锁和悲观锁?177.排查mysql问题的方法有哪些?178.如何优化mysql的性能?18.什么是Redis179.redis?有哪些使用场景?180.redis有哪些功能?181.redis和memecache有什么区别?182.为什么redis是单线程的?183.什么是缓存穿透?如何处理?184.redis支持哪些数据类型?185.redis支持的java客户端有哪些?186.jedis和redisson有什么区别?187.如何保证缓存和数据库数据的一致性?188.redis的持久化有几种方式?189.redis是如何实现分布式锁的?190.redis分布式锁有哪些缺陷?191.redis是如何做内存优化的?192.redis的淘汰策略有哪些?193.redis常见的性能问题有哪些?如何解决?19.JVM194。说说jvm的主要组成部分?及其作用?195.浅谈jvm运行时数据区?196.说说栈的区别?197.什么是队列和栈?有什么不同?198.什么是父母委托模式?199.说说类加载的执行过程?200.如何判断对象是否可以回收?201.java中的引用类型有哪些?202.告诉我jvm有哪些垃圾回收算法?203.告诉我jvm有什么样的垃圾收集器?204.详细解释CMS垃圾收集器?205.什么是新生代垃圾收集器和老年代垃圾收集器?有什么不同?206.简述分代垃圾收集器是如何工作的?207.说说jvm调优工具?208.常用的jvm调优参数有哪些?2.面试题答案总结(1)基础模块(2)容器(3)多线程(4)反射(5)对象复制(6)JavaWeb(7)异常(8)网络(9)设计模式(10)Spring/SpringMVC(11)SpringBoot/SpringCloud(12)Hibernate(13)Mybatis(14)RabbitMQ(15)Kafka(16)Zookeeper(17)MySql(18)Redis(19)JVM