2023 年最新版Java面试题及答案整理(完整版,超详细)

news2024/11/24 22:56:54

程序员一步入中年,不知不觉便会被铺天盖地的“危机感”上身,曾经的那个少年已经不在,时间就是这样公平。就算你能发明Java语言,随着时间的推移,你注定还是要成为慢慢变蔫的茄子,缓缓变黑的葡萄。

看着金九银十就要来临的消息,吓得我周末赶紧拿出了面试资料,只读了一小部分我就发现一个事实,果然有很多的知识点都模棱两可,相信很多的人都跟我一样有这样的危机感。怎么办呢???

今天给大家分享一份阿里P9架构师推荐的Java后端领域巅峰之作《Java面试资源大礼包》,我看完这份PDF之后彻底颠覆了我对Java的认知。

架构师必备技能:(大厂面试必问)

​编辑

多线程&并发面试题:

JAVA 并发知识库:

​编辑

  • Java中实现多线程有几种方法
  • 继承Thread类
  • 实现Runnable接口。
  • ExecutorSenvice. Callable. Future 有返回值线程
  • 基于线程池的方式
  • 4种线程池
  • 如何停止一个正在运行的线程
  • notify0和notifyAll0有什么区别?
  • sleep0和wait0有什么区别?
  • volatile是什么?可以保证有序性吗?
  • Thread类中的start0和run0方法有什么区别?
  • 为什么wait, notify和nfifAllI这些方法不在thread类里面?
  • 为什么wait和ntify方法要在同步块中调用?
  • Java中interrupted和isInterruptedd方法的区别?
  • Java中synchronized和ReentrantLock有什么不同?
  • 有三个线程T1,T2,T3,如何保证顺序执行?
  • SynchronizedMap和ConcurrentHashMap有什么区别?
  • 什么是线程安全
  • Thread类中的yield方法有什么作用?
  • Java线程池中submit0和execute0方法有什么区别?
  • 说一说自己对于synchronized关键字的了解
  • 说说自己是怎么使用synchronized关键字,在项目中用到了吗ynchronized关键字最主要的三种使用方式?
  • 什么是线程安全? Vector是一 个线程安全类吗?
  • volatile关键字的作用?
  • 简述一下你对线程池的理解
  • 线程生命周期(状态)

​编辑

JVM面试题:

  • Serial垃圾收集器(单线程、复制算法)
  • ParNew垃圾收集器(Serial+ 多线程)
  • Parallel Scavenge收集器(多线程复制算法、高效)
  • Serial Old收集器(单线程标记整理算法)
  • Parallel Old收集器(多线程标记整理算法)
  • CMS收集器(多线程标记清除算法)
  • G1收集器
  • JVM类加载机制
  • 类加载器
  • 双亲委派
  • OSGI (动态模型系统)
  • 动态改变构造
  • 模块化编程与热插拔
  • JVM内存模型
  • 本地方法栈
  • 程序计数器
  • 方法区
  • 分代回收
  • 堆和栈的区别
  • 什么时候会触发FullGC
  • 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
  • 对象分配规则
  • 描述一下JM加载class文件的原理机制?
  • Java对象创建过程

​编辑

Java中的IO与NIO面试题:

  • Java中10流?
  • Java 10与NIO的区别
  • 常用io类有哪些
  • 字节流与字符流的区别
  • 阻塞10模型
  • 非阻塞10模型
  • 多路复用10模型
  • 信号驱动10模型
  • 异步10模型
  • JAVA NIO
  • NIO的缓冲区
  • NIO的非阻塞
  • Channel
  • Buffer

​编辑

Mysql面试题:

  • 分库分表之后,d主键如何处理
  • 存储过程(特定功能的SQL语句集)
  • 存储过程优化思路
  • 触发器(一段能自动执行的程序)
  • 数据库并发策略
  • MySQL中有哪几种锁?
  • MySQL中有哪些不同的表格?
  • 简述在MySQL数据库中MyISAM和InnoDB的区别
  • MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?
  • CHAR和VARCHAR的区别?
  • 主键和候选键有什么区别?
  • myisamchk是用来做什么的?
  • MyISAM Static 和MyISAM Dynamic有什么区别?
  • 如果一个表有一-列定义为TIMESTAMP,将发生什么?
  • 你怎么看到为表格定义的所有索引?
  • LIKE声明中的%和_是什么意思?
  • 列对比运算符是什么?
  • BLOB和TEXT有什么区别?
  • MySQL fetch. array 和MySQL fetch object 的区别是什么?
  • MyISAM表格将在哪里存储,并且还提供其存储格式?
  • MySQL如何优化DISTINCT?
  • 如何显示前50名?
  • 可以使用多少列创建索引?
  • NOW () 和CURRENT_ DATE () 有什么区别?
  • 什么是非标准字符串类型?
  • 什么是通用SQL函数?
  • MySQL支持事务吗?

​编辑

Redis面试题:

  • Redis是单进程单线程的?
  • 一个字符串类型的智能存储最大容量是多少?
  • Redis持久化机制
  • 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
  • 热点数据和冷数据是什么
  • 单线程的redis为什么这么快
  • redis的数据类型,以及每种数据类型的使用场景
  • redis的过期策略以及内存淘汰机制
  • Redis常见性能问题和解决方案?
  • 为什么Redis的操作是原子性的,怎么保证原子性的?
  • Redis事务
  • Redis的持久化机制是什么?各自的优缺点?
  • Redis常见性能问题和解决方案:
  • redis过期键的删除策略?
  • Redis的回收策略(海汰策略) ?
  • 为什么edis需要把所有数据放到内存中?
  • Redis的同步机制了解么?
  • Pipeline有什么好处,为什么要用pipeline?
  • 是否使用过Redis集群,集群的原理是什么?
  • Redis集群方案什么情况下会导致整个集群不可用?
  • Redis支持的Java客户端都有哪些?官方推荐用哪个?
  • Jedis与Redisson对比有什么优缺点?
  • Redis如何设置密码及验证密码?

​编辑

MongoDB面试题:

  • 当更新-个正在被迁移的块(Chunk). 上的文档时会发生什么?
  • MongoDB在A:(B,C}上建立索引,查询A:{B,C]和A:{C,B)都会使用索引吗?
  • 如果一个分片(Shard) 停止或很慢的时候,发起一个查询会怎样?
  • MongoDB支持存储过程吗?如果支持的话,怎么用?
  • 如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
  • 什么是NoSQL数据库? NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?
  • MongoDB支持存储过程吗?如果支持的话,怎么用?
  • 如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
  • 为什么MongoDB的数据文件很大?
  • 当更新-个正在被迁移的块(Chunk) 上的文档时会发生什么?
  • MongoDB在A:(B,C}上建立索引,查询A:{B,C]和A:{C,B)都会使用索引吗?
  • 如果一个分片(Shard) 停止或很慢的时候,发起一个查询会怎样
  • 分析器在MongoDB中的作用是什么?
  • 如果用户移除对象的属性,该属性是否从存储层中删除?
  • 能否使用日志特征进行安全备份?
  • 更新操作立刻fsync到磁盘?
  • 如何执行事务/加锁?
  • 什么是master或primary?
  • getLasterror的作用
  • 分片(sharding) 和复制(replication) 是怎样工作的?
  • 数据在什么时候才会扩展到多个分片(shard) 里?
  • 当我试图更新 一个正在被迁移的块(chunk) 上的文档时会发生什么?

​编辑

MyBatis 面试题:

  • 通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,
  • 这个Dao接口的工作原理是什么? Dao接口里的方法,参数不同时,方法能重载吗?
  • 如何获取自动生成的(主)键值?
  • 在mapper 中如何传递多个参数?
  • Mybatis 动态sql有什么用?执行原理?有哪些动态sql?
  • Xml映射文件中,除了常见的selectlinsertlupdaeldelete标签之外,还有哪些标签?
  • Mybatis 的Xml映射文件中,不同的Xml映射文件,id 是否可以重复?
  • 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
  • 一对一、一对多的关联查询?
  • MyBatis 实现一对一有几种方式?具体怎么操作的?
  • MyBatis 实现-对多有几种方式,怎么操作的?
  • Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
  • Mybatis 的一级、二级缓存
  • 什么是MyBatis的接口绑定?有哪些实现方式?
  • 使用MyBatis的mapper接口调用时有哪些要求?
  • Mapper 编写有哪几种方式?
  • 简述Mybatis的插件运行原理,以及如何编写一个插件。
  • MyBatis实现一对一有几种方式?具体怎么操作的?

​编辑

Spring面试题:

  • Spring AOP and AspectU AOP有什么区别?
  • 如何理解Spring中的代理?
  • 什么是编织(Weaving) ?
  • Spring MVC框架有什么用?
  • 描述一下DispatcherServlet的工作流程
  • 介绍一下WebApplicationContext
  • 什么是spring?
  • 使用Spring框架的好处是什么?
  • Spring由哪些模块组成?
  • Spring的IOC和AOP机制
  • Spring中Autowired和Resource关键字的区别
  • 依赖注入的方式有几种,各是什么?
  • 讲一下什么是Spring
  • Spring MVC流程
  • springMVC是什么
  • SpringMVC怎么样设定重定向和转发的?
  • SpringMVC常用的注解有哪些
  • Spring的AOP理解
  • Spring的IOC理解
  • 解释一下spring bean的生命周期
  • 解释Spring支持的几种bean的作用域。
  • Spring基于xml注入bean的几种方式
  • Spring框架中都用到了哪些设计模式
  • 核心容器(应用上下文)模块
  • BeanFactory - BeanFactory实现举例。
  • XML BeanFactory
  • 解释AOP模块

​编辑

Spring Boot面试题:

  • 我们能否在spring-boot- starter-web中用jetty代替tomcat?
  • 如何使用Spring Boot生成一个WAR文件?
  • 如何使用Spring Boot部署到不同的服务器?
  • RequestMapping和GetMapping的不同之处在哪里?
  • 为什么我们不建议在实际的应用程序中使用Spring Data Rest?
  • 在Spring Initializer中,如何改变-个项目的包名字?
  • 可以配置application.propertierde的完整的属性列表在哪里可以找到?
  • JPA 和Hibernate有哪些区别?
  • 使用Spring Boot启动连接到内存数据库H2的JPA应用程序需!要哪些依赖项?
  • 如何不通过任何配置来选择Hibernate作为JPA的默认实现?
  • 指定的数据库连接信息在哪里?它是如何知道自动连接至H2的?
  • 我们如何连接一个像MSSQL或者orcale -样的外部数据库?
  • Spring Boot配置的默认H2数据库的名字是上面?为什么默认的数据库名字是testdb?
  • 如果H2不在类路径里面,会出现上面情况?
  • 你能否举一个以ReadOnly为事务管理的例子?
  • 发布Spring Boot用户应用程序自定义配置的最好方法是什么?
  • 配置文件的需求是什么?
  • 如何使用配置文件通过Spring Boot配置特定环境的配置?
  • 我们如何使用Maven设置Spring Boot应用程序?
  • 如何禁用特定的自动配置?
  • Spring boot支持哪些外部配置?
  • 如何对Spring Boot应用进行测试?
  • Spring Boot Actuator有什么用?
  • SpringBoot 中静态首页默认位置可以放在哪里?
  • SpringBoot中静态资源直接映射的优先级是怎样的?

​编辑

Spring Cloud面试题:

  • SpringBoot和SpringCloud的区别?
  • 什么是Hystrix断路器?我们需要它吗
  • 说说RPC的实现原理
  • 微服务的优点缺点?说下开发项目中遇到的坑?
  • spring cloud 和dubbo区别?
  • REST和RPC对比
  • 你所知道的微服务技术栈?
  • 微服务之间是如何独立通讯的?
  • springcloud如何实现服务的注册?
  • Eureka和Zookeeper区别
  • eureka自我保护机制是什么?
  • 什么是Ribbon?
  • 什么是feigin?它的优点是什么?
  • Ribbon和Feign的区别?
  • 什么是Spring Cloud Bus?
  • springcloud断路器作用?
  • Spring Cloud Gateway?
  • 作为服务注册中心,Eureka比Zookeeper好在哪里?
  • 什么是Ribbon负载均衡?
  • Ribbon负载均衡能干什么?
  • 什么是zuu|路由网关
  • 分布式配置中心能干嘛?

​编辑

数据结构面试题:

  • 栈(stack)
  • 队列(queue)
  • 链表(Link)
  • 散列表(Hash Table)
  • 排序二叉树
  • 前缨树
  • 红黑树
  • B-TREE
  • 位图

​编辑

算法面试题:

  • 数据里有{1,2,3,4,5,6,7,8,9}. 请随机打乱顺序,生成一个新的数组(请以代码实现)
  • 写出代码判断一个整数是不是2的阶次方(请代码实现,谢绝调用API方法)
  • 假设今日是2015年3月1日,星期日,请算出13个月及6天后是星期几,距离现在多少天(请用代码实现,谢绝调用API方法)
  • 有两个篮子,分别为A和B,篮子A里装有鸡蛋,篮子B里装有苹果,请用面向对象的思想实现两个篮子里的物品交换(请用代码实现)
  • 二分查找
  • 冒泡排序算法
  • 插入排序算法
  • 快速排序算法
  • 希尔排序算法
  • 归并排序算法
  • 桶排序算法
  • 基数排序算法
  • 剪枝算法
  • 回溯算法
  • 最短路径算法
  • 最小生成树算法
  • AES
  • RSA
  • CRC
  • MD5
  • 更多算法练习

​编辑

Kafka 面试题:

  • Consumer Group
  • 如何获取topic主题的列表
  • 生产者和消费者的命令行是什么?
  • consumer是推还是拉?
  • 讲讲kafka维护消费状态跟踪的方法
  • 讲一下主从同步
  • 为什么需要消息系统,mysql 不能满足需求吗?
  • Zookeeper对于Kafka的作用是什么?
  • Kafka判断一个节点是否还过着有那两个条件?
  • Kafka与传统MQ消息系统之间有三个关键区别
  • 讲一讲kafka的ack的三种机制|
  • 消费者如何不自动提交偏移量,由应用提交?
  • 消费者故障,出现过锁问题如何解决?
  • 如何控制消费的位置

​编辑

微服务 面试题:

  • Container在微服务中的用途是什么?
  • 什么是微服务架构中的DRY?
  • 什么是消费者驱动的合同(CDC) ?
  • Web, RESTful API在微服务中的作用是什么?
  • 您对微服务架构中的语义监控有何了解?
  • 我们如何进行跨功能测试?
  • 我们如何在测试中消除非决定论?
  • Mock或Stub有什么区别?
  • 您对Mike Cohn的测试金字塔了解多少?
  • Docker的目的是什么?
  • 什么是金丝雀释放?
  • 什么是持续集成(CI) ?
  • 什么是持续监测?
  • 架构师在微服务架构中的角色是什么?
  • 我们可以用微服务创建状态机吗?
  • 什么是微服务中的反应性扩展?

Elasticsearch 面试题

  • Elasticsearch 在部署时,对Linux的设置有哪些优化方法
  • ucence内部结构是什么?
  • Elasticsearch 是如何实现Master选举的?
  • Elasticsearch中的节点(比如共20个),其中的10个选
  • 个master, 另外10个选了另一个master, 怎么办?
  • 客户端在和集群连接时,如何选择特定的节点执行请求的?
  • 详细描述一下Elasticsearch索引文档的过程。
  • 详细描述一下Elasticsearch 更新和删除文档的过程。
  • 详细描述一 下Elasticsearch 搜索的过程
  • 在Elasticsearch中,是怎么根据一个词找到对应的倒排索
  • Elasticsearch在部署时,对Linux的设置有哪些优化方法?
  • 对于GC方面,在使用Elasticsearch时要注意什么?
  • Elasticsearch对于大数据量( 上亿量级)的聚合如何实现?
  • 在并发情况下,Elasticsearch 如何保证读写一致?
  • 如何监控Elasticsearch集群状态?
  • 介绍下你们电商搜索的整体技术架构
  • 介绍一下你们的个性化搜索方案?
  • 是否了解字典树?
  • 拼写纠错是如何实现的?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/630418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

支付宝商家多个账号下的账单管理工具配置指南

大家好,我是小悟 阅读这篇文章之前,结合这篇【有了这个工具,支付宝商家多个账号下的账单管理更方便了】干货食用更佳。 商户管理 这里录入的是商家应用相关信息 商户名称:应用id所属的应用名称。 应用id:支付宝开放…

Django新手必看:如何创建应用和定义数据表。(详细讲解)

Django新手必看:如何创建应用和定义数据表。 1. Django创建应用1.1 创建应用1.2 应用的添加 2. Django ORM2.1 定义数据表2.2 定义项目数据表2.3 通用字段选项2.4 外键使用2.5 应用数据库迁移 🏘️🏘️个人简介:以山河作礼。 &…

json-server操作restful

1.安装Node.js 默认已经内置npm&#xff0c;下载对应软件包直接安装即可。nodejs的官网 命令 描述 指令解释npm -v查看版本npm install <模块名>安装模块npm list查看所有全局安装的模块npm list -g查看某个模块的版本号npm install --save <模块名>在package.js…

【大模型】开源大模型汇总以及微调策略

目录 前言LLaMAstanford AlpacaGuanacoVicunaChinese-LLaMA-AlpacaChinese-VicunaLuotuo-Chinese FalconOpenBuddy-Falcon ChatGLM && VisualGLMMOSSAquilaPandaGPTTigerBot模型微调策略LoRAQLORAP-tuningv2 前言 自从ChatGPT出世以来&#xff0c;各个大厂/研究院都纷…

Hugging News #0609: 最新代码生成模型 StarCoder+ 和 StarChat Beta 重磅发布!

每一周&#xff0c;我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新&#xff0c;包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等&#xff0c;我们将其称之为「Hugging News」&#xff0c;本期 Hugging News 有哪些有趣的消息…

SG90舵机介绍

SG90舵机简介 SG90舵机是一种位置&#xff08;角度&#xff09;伺服的驱动器&#xff0c;适用于那些需要角度不断变化并可以保持的控制系统。在机器人机电控制系统中&#xff0c;舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构&#x…

耗时一个月,整理了这份大厂Java面试 / 学习指南,共计1500+ 题全面解析

程序员一步入中年&#xff0c;不知不觉便会被铺天盖地的“危机感”上身&#xff0c;曾经的那个少年已经不在&#xff0c;时间就是这样公平。就算你能发明 Java 语言&#xff0c;随着时间的推移&#xff0c;你注定还是要成为慢慢变蔫的茄子&#xff0c;缓缓变黑的葡萄。 看着金…

AI不能做什么?

什么是非人工智能 每个行业都需要的 3 种人为驱动的决策能力 布兰代斯马歇尔 支持统计数据的研究报告预计高度依赖AI的未来。 • 2018年,麦肯锡全球研究院发布了一份《工作未来报告》,估计到2030年,全球将有4亿人被AI系统、工具和平台取代。 • 2023年3月,高盛发布了其《全球经…

Typora安装使用

Typora安装使用 1、概述 因为本人电脑是Mac笔记本&#xff0c;所以本文介绍下Mac M1芯片下Typora的安装使用以及在线插件的安装。 2、安装Typora 下载Typora 1.5.8&#xff1a;下载 Typora 1.5.8 - 马可菠萝 完成安装。 自定义下载喜欢的主题&#xff1a;点击文件->偏好…

day10——线性回归的改进之岭回归

线性回归的改进之岭回归 一、过拟合和欠拟合二、正则化类别三、岭回归四、实操&#xff1a;波士顿房价预测 一、过拟合和欠拟合 1&#xff0c;欠拟合 如下所示&#xff0c;机器学习到的天鹅特征太少了&#xff0c;导致区分标准太粗糙&#xff0c;不能准确识别出天鹅。 2&…

asp.net归宿管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net归宿管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言开发 asp.net归宿管理系统VS开发sqlserver数…

Android垃圾分类助手APP(Java+Android Studio+SQLite)

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;69垃圾 获取完整源码源文件说明文档报告数据库文件等 开发运行环境 开发语言&#xff1a;Java 开发工具&#xff1a;Android Studio 模拟器&#xff1a;雷电模拟器9 数据库&#xff1a;SQLite 使用的核心类及组件 Activ…

广告数仓:采集通道创建

系列文章目录 广告数仓&#xff1a;采集通道创建 文章目录 系列文章目录前言一、环境和模拟数据准备1.hadoop集群2.mysql安装3.生成曝光测试数据 二、广告管理平台数据采集1.安装DataX2.上传脚本生成器3.生成传输脚本4.编写全量传输脚本 三、曝光点击检测数据采集1.安装Zookee…

CentOS6.10上离线安装ClickHouse19.9.5.36并修改默认数据存储目录

背景 在一台装有 CentOS6.10 操作系统的主机上安装 ClickHouse &#xff08;其实本来计划是先安装 Docker &#xff0c;然后在 Docker 中快速启动 ClickHouse 的&#xff0c;但是由于 CentOS6 对 Docker 支持不好&#xff0c;就直接在系统上装 ClickHouse 吧&#xff09;&…

jvm 命令和工具, jvm 堆 内存泄露 fullgc

目录 堆太大? 堆内存分析工具 MAT JProfiler ZProfiler - 线上的mat - 已进化为Grace EagleEye-MProf - 命令行 jhat jvisual 问题 w使用JProfiler和MAT打开内存超大的hprof文件时报错的解决方案_hprof太大_CoderBruis的博客-CSDN博客 很简单,把jvm参数调整下,设置小…

vue3---模板引用 nextTick

目录 模板引用--ref 访问模板引用 v-for 中的模板引用 函数模板引用 组件上的 ref 简单理解Vue中的nextTick 示例 二、应用场景 三、nextTick源码浅析 实战 --- vue3实现编辑与查看功能 模板引用--ref 虽然 Vue 的声明性渲染模型为你抽象了大部分对 DOM 的直接操作&…

TOF激光雷达告别“技术路线之争”

交流群 | 进“传感器群/滑板底盘群/汽车基础软件群/域控制器群”请扫描文末二维码&#xff0c;添加九章小助手&#xff0c;务必备注交流群名称 真实姓名 公司 职位&#xff08;不备注无法通过好友验证&#xff09; 编辑 | 苏清涛 两三年前&#xff0c;在提起激光雷达时&…

067:cesium flyto一个具体的实体位置

第067个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置飞行定位功能,飞行到一个实体的区域。viewer.flyTo 函数接受实体、EntityCollection、DataSource、Cesium3DTilset 等。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果…

8.Nginx Rewrite

文章目录 Nginx Rewrite常用Nginx的正则表达式locationlocation大致可以分为三类location常用的匹配规则location优先级location示例说明实际网站使用中&#xff0c;至少有三个匹配规则定义 Rewriterewrite跳转实现rewrite执行顺序如下rewrite示例基于域名的跳转基于客户端IP访…

Git常用命令及基础操作

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;Git ⭐如果觉得文章写的不错&#xff0c;欢迎点个关注一键三连&#x1f609;有写的不好的地方也欢迎指正&#x…