Java面试题
文章平均质量分 92
程序员波特
全网同名,资深Java开发。专注分享Java后端、中间件、架构设计、云原生、面试等干货知识。关注我,一起成长
展开
-
【面试专题】Spring高频面试题
Controller @Service @RestController @RequestBody,@Indexd @Import等@Indexd提升 @ComponentScan的效率@Import注解是import标签的替换,在SpringBoot的自动装配中非常重要,也是EnableXXX的前置基础。看下图上图是循环依赖的三种情况,虽然方式有点不一样,但是循环依赖的本质是一样的,就你的完整创建要依赖与我,我的完整创建也依赖于你。相互依赖从而没法完整创建造成失败。原创 2024-04-01 15:00:00 · 578 阅读 · 0 评论 -
【面试专题】Mybatis高频面试题
1。缓存的作用缓存的作用:减低数据源的访问频率。从而提高数据源的处理能力。或者提高服务器的响应速度2。MyBatis中的缓存设计MyBatis中的缓存的架构设计:装饰器模式MyBatis中的一级缓存和二级缓存一级缓存:session级别二级缓存:SqlSessionFactory级别缓存的设计通过装饰模式实现缓存功能扩展缓存的应用一级缓存和二级缓存一级缓存和二级缓存的顺序问题:先二级缓存再一级缓存为什么会先走二级缓存再走一级缓存?原创 2024-04-01 08:00:00 · 963 阅读 · 0 评论 -
【面试专题】JVM相关
*使用G1收集器时,Java堆的内存布局与就与其他收集器有很大差别,它将整个Java堆划分为多个大小相等的独立区域(Region),虽然还保留有新生代和老年代的概念,但新生代和老年代不再是物理隔离的了,它们都是一部分Region(不需要连续)的集合。类加载机制其实就是虚拟机把Class文件加载到内存,并对数据进行校验,转换解析和初始化,形成可以虚拟机直接使用的Java类型,即java.lang.Class。Serial Old收集器是Serial收集器的老年代版本,也是一个单线程收集器,不同的是采用"原创 2024-03-31 15:00:00 · 806 阅读 · 0 评论 -
【面试专题】MySQL
Page是整个InnoDB存储的最基本构件,也是InnoDB磁盘管理的最小单位,与数据库相关的所有内容都存储在这种Page结构里。Page分为几种类型,常见的页类型有数据页(B+tree Node)Undo页(Undo Log Page)系统页(System Page) 事务数据页(Transaction System Page)等Page 各部分说明名称占用大小说明38字节文件头, 描述页信息56字节页头,页的状态26字节最大和最小记录,这是两个虚拟的行记录不确定。原创 2024-03-31 10:00:00 · 936 阅读 · 0 评论 -
【面试专题】设计模式
1)静态代理这种代理方式需要代理对象和目标对象实现一样的接口。优点:可以在不修改目标对象的前提下扩展目标对象的功能。缺点:冗余。由于代理对象要实现与目标对象一致的接口,会产生过多的代理类。不易维护。一旦接口增加方法,目标对象与代理对象都要进行修改。2)JDK动态代理动态代理利用了JDK API,动态地在内存中构建代理对象,从而实现对目标对象的代理功能.动态代理又被称为JDK代理或接口代理.静态代理在编译时就已经实现了,编译完成后代理类是一个实际的class文件。原创 2024-03-30 15:55:44 · 936 阅读 · 0 评论 -
高频面试题整理(二)
非常重要的原则,mysql会一直向右匹配直到范围查询(<,>,between,like)就停止匹配,比如a=3,b=4, and c>5 and d=6 ,建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则可以用到。线程A调用线程B的stop方法,去停止线程B,但线程A其实并不知道线程B的具体执行情况,这种突然的停止动作会导致线程B的一些清理工作无法完成,还有就是执行stop方法后,线程B会马上释放自己的锁,这样有可能会引发数据不同步的问题。原创 2024-02-26 08:00:00 · 902 阅读 · 0 评论 -
高频面试题整理(一)
JAVA反射机制是指在运行状态中,对于任意一个类,都能够知道这个类 的所有属性和方法,对于任意一个对象,都能够调用他的任意方法和属性,这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。写一个放射的例子?通过Class.forName(“类的全限定名”),拿到类的class对象,假如为clazz通过clazz.newInstance()方法创建 一个该类的对象。原创 2024-02-25 21:22:48 · 1342 阅读 · 0 评论 -
常见面试题:TCP的四次挥手和TCP的滑动窗口
咱们来总结一下 TCP 采用四次挥手来释放连接,在第一次挥手的过程中呢,client 向 server 呢发送了一个报文。用来关闭 client 到 server 的数据传送。client 呢,就进入到了 finish wait 1 这么一个状态当中。在第二次挥手的过程中,我们的这个 server 在收到了 client 发来的包文之后。会发送一个 ack 给 client,并且我们的小写的 ack 及确认序号,就是我们之前收到的这个 client 发来的。序号加一。原创 2024-02-19 21:28:57 · 976 阅读 · 0 评论 -
这一次,要彻底理解TCP的三次握手!
一个常见的题目,说说 TCP 的三次握手,我们先来交代一下 IP 协议和 TCP 协议,我们都知道IP 协议是无连接的通信协议,它不会占用两个正在通信的计算机之间的通信线路。这样 IP 就降低了对网络线路的需求,每条线可以同时满足许多不同的计算机之间的通信需要,通过 IP 消息或者其他数据呢,会被分割为较小的,独立的包。并通过因特网在计算机之间传送 IP,负责将每个包路由至它的目的地。但 IP 协议呢,没有做任何事情来确认数据包是否按顺序发送,或者包是否被破坏。原创 2024-02-19 20:37:53 · 756 阅读 · 0 评论 -
Java面试第一站:计算机网络基础知识
是网络的原因,还是别的原因?在数据传输的过程中,我们可以看到和 osi 一样, TCP\IP 的每个分层中呢,都会对所发送的数据呢,附加一个头部。如发送的目标,地址以及协议相关的信息,通常为协议提供的信息为报头的首部所要发送的内容、为数据从下一层角度上看呢?通信过程中需要发送大量的数据,如海量文件传输的可能需要很长时间,而网络在通信的过程中会中断好多次,此时为了保证传输大量文件时的准确性,需要对发出去数据进行切分。传输层解决了主机间的数据传输,数据间的传输可以是不同网络的,并且传输层解决了传输质量的问题。原创 2024-02-18 23:01:56 · 640 阅读 · 0 评论 -
Java开发面试题回忆录
项目终于忙完了,难得不加班,但回到家中却不知道干啥,打开自己的云笔记,看到了以前面试时碰到的一些面试题,下面将会把以前面试时被问到的问题都分享出来,下面的题看看小伙伴们可以答的怎样吧。原创 2024-01-12 08:45:00 · 347 阅读 · 0 评论 -
Java中的类你了解多少(每日一练)
双亲委派模型的工作流程是:如果⼀个类加载器器收到了类加载的请求,它⾸先不会⾃己去尝试加载这个类,⽽是把请求委托给父加载器去完成,依次向上,因此,所有的类加载请求最终都应该被传递到顶层的启动类加载器中,只有当⽗类载器在它的搜索范围中没有找到所需的类时,即⽆法完成该加载,⼦加载器才会尝试自己去加载该类。当加载⼀个class时,它⾸先不不会⾃己去尝试加载这个类,⽽是把类加载请求委派给⽗类加载器去完成。当加载⼀个class时,它⾸先也不会⾃己去尝试加载这个类,⽽是把类加载请求委派给去完成。如果。原创 2023-10-29 10:51:58 · 136 阅读 · 0 评论 -
Java中会出现内存泄漏吗
这是一个老生常谈的面试题,本文就系统讲解一下吧虽然Java有GC垃圾⾃动回收功能,但并不是说Java程序就不会内存泄漏。如果一个对象没有地⽅会使⽤到,但是却仍然有引用指向他,那么垃圾回收器就无法回收他,这种情况就属于内存泄漏。这种泄漏可能属于短暂的(即程序运⾏一段时间后引用消除进⽽触发GC)也可能是程序级别的(即程序退出时才会回收)。Java的内存泄漏和C/C++的内存泄漏不一样,C/C++的内存泄漏可能是系统级别的,即使程序退出也无法被回收,只能重启系统。垃圾回收机制。原创 2023-10-27 08:00:00 · 293 阅读 · 0 评论 -
JVM相关面试题(每日一练)
垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这部分内存的分配和使用都是动态的。原创 2023-10-26 22:29:02 · 728 阅读 · 0 评论