面试题目总结(三)
1. Spring、Springboot、springMVC、Spring Cloud 的区别:
- Spring:Spring 是一个开源的、轻量级的Java框架,提供了丰富的功能和组件,用于构建企业级应用程序。Spring框架包含了很多模块,包括核心容器、数据访问、事物管理、AOP、Web开发等,可以根据需要选择使用不同的模块。
- Springboot:Springboot 是基于 Spring 框架的快速开发框架,旨在简化 Spring 应用程序的配置和部署过程。它提供了自动配置,快速启动,约定优于配置等特性,使得开发者可以更加专注于业务逻辑的实现而不需要过多关注繁琐的配置。Springboot还集成了常用的功能,如嵌入式服务器、安全性、健康检查等,方便快速构建独立的可执行JAR包。
- SpringMVC:SpringMVC是Spring 框架中的一个模块,用于开发基于MVC(Model-View-Controller)架构程序。它提供了一套处理HTTP请求和响应的机制,支持通过注解或配置文件进行请求映射、请求参数处理、视图解析等操作。SpringMVC是一个灵活且功能的Web框架,可以与其他Spring模块(如Springboot)进行集成使用。
- SpringCloud 是一个基于Springboot的开发工具集,用于构建分布式系统和微服务架构。它提供了一系列的组件和模块,用于解决分布式系统中的常见问题,例如访问注册与发现、负载均衡、熔断器、配置管理等。
2. 使用线程池创建线程时参数有哪些
- corePoolSize:核心线程池大小,表示线程池在保持的线程数码,即使它们处于空闲状态。当提交一个新的任务到线程时,如果当前线程池中的线程数量少于corePoolSize,则会常见一个新的线程来处理该任务,即使此时其他空闲的基本线程能够处理该任务也会创建新的线程,直到到达corePoolSize为止。
- maximumPoolSize:最大线程池大小,表示线程池中最多呢创建的线程数目。当提交一个新任务到线程池时,如果当前线程池中的线程数目已经达到corePoolSize,并且缓冲队列已满,则会根据maximumPoolSize的值来判断是否创建新的线程。如果当前线程池中的线程数目小于maximumPoolSize,则会创建新的线程。如果当前线程池中的线程数目等于或大于maximunPoolSize,则不会创建新的线程。
- keepAliveTime:线程池维护线程所允许的空闲时间,默认情况下,KeepAliveTime设置为0表示线程空闲后立即终止。当线程池中线程数量超过corePoolSize时,如果这些多余的线程空闲时间超过KeepAliveTime时长,则这些多余的线程将会被终止。
- unit:keepAliveTime的单位,可以是TimeUnit.MILLISECONDS(毫秒)、TimeUnit.SECONDS(秒)等等。
- workQueue:任务队列,用于储存已经提交但尚未执行的任务。常用的队列类型有:ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、PriorityBlockingQueue等。
- threadFactory:线程创建工厂,用于设置创建线程时的一些属性,例如线程名称、是否为守护线程等。
- handler:拒绝策略,表示当前线程池中的线程数目达到maximumPoolSize并且缓冲队列已满时,如何拒绝新任务的执行。常见的拒绝策略有以下几种:AbortPolicy、CallerRunPolicy、DiscardOldestPolicy、DiscardPolicy
3. 常见事物的隔离级别
事物的隔离级别是数据库管理系统中用来控制事物并发访问是数据可见性的一种机制
读未提交(Read Uncommitted)
:允许一个事读取另一个事务未提交的数据。这种隔离级别可能导致脏读
,即一个事务读取了另一个事务未提交的数据,而后者最终被回滚,导致前者读取到的数据是无效的。读已提交(Read Committed)
:保证一个事务只能读取到另一个事务已经提交的数据。这种隔离级别可以避免脏读,但可能导致不可重复读
,即在同一个事务中,由于其他事物的提交,某个数据的值发生了变化。可重复读(Repeatable Read)
:保证在同一个事务中多次读取同样的数据是,结果始终一致。这种隔离级别可以避免不可重复读,但可能会导致幻读
,即在事务中,由于其他事务的插入或删除,出现了新增或减少的数据行。序列化(Serializable)
:最高的隔离级别,通过强制事务船型执行来避免脏读、不可重复读和幻读、虽然可以解决并发访问导致的数据不一致问题,但会导致性能严重下降。
4. 数据库的索引类型有哪些
- B-树索引(B-tree Index):B-树是一种平衡的多路搜索树,常用于支持范围查询。它适用于大多数数据库系统,如MySQL、Oracle等。
- B+树索引(B+tree Index):B+树是在B-树的基础上进行优化的数据结构,它将所有的数据都储存在叶子节点,并使用连接叶子节点,适用于范围查询和数据访问。B+树索引在很多关系型数据库中被广泛使用。
- 哈希索引(Hash Index):哈希索引通过将索引列的值计算哈希值,然后根据哈希值进行快速查找。哈希索引适合等值查询,但不适合范围查询。例如,MySQL的内存表和MyISAM引擎支持哈希索引。
- 全文索引(Full-Text Index):全文索引通常用于对文本内容进行搜索。它可以创建关键词索引,以便在文本中进行全文索引。全文索引可以加快文本搜索的速度,常见的数据库系统如MySQL、PostgreSQL都提供了全文索引功能。
- 位图索引(Bitmap Index):位图索引将每个唯一的索引值与位图进行映射,位图的每一位表示对应索引值的存在或缺失。位图索引适用于低基数的列。比如性别、状态等。
5. SpringBoot 的执行流程
SpringBoot 是一个基于 Spring 框架的快速开发框架,它通过自动配置和约定优于配置的原则,简化了Spring应用程序的开发流程,提供了一种快速构建、易于部署的方式。
- 加载配置文件:SpringBoot 会自动加载 application.properties 或 application.yml 等配置文化,并将其中的配置顶绑定到对应的Java对象上,这些对象被称为Spring Bean。
- 创建 Spring IoC 容器:SpringBoot 会根据配置文件中的信息创建一个Spring IoC 容器,并将其中的所有Bean都装载到容器中,在这个过程中,SpringBoot 会自动扫描所有的类,并根据注解自动配置Bean。
- 运行应用程序:SpringBoot 会自动其实Web服务器,监听客户端请求,并将请求交给合适的Controller 进行处理。在 Controller 中,SpringBoot 会自动绑定请求参数和响应结果,并调用 Service处理业务逻辑。
- 处理请求:在处理请求的过程中,SpringBoot 会自动执行拦截器、过滤器等组件,以及处理异常、日志等功能。同时,SpringBoot 还提供了缓存、事务、安全、任务调度等常用功能,方便开发者使用。
- 关闭应用程序:当应用程序关闭时,SpringBoot 会自动销毁所有的 Bean,释放资源,并关闭Web服务器。
相关文章:
面试题目总结(三)
1. Spring、Springboot、springMVC、Spring Cloud 的区别: Spring:Spring 是一个开源的、轻量级的Java框架,提供了丰富的功能和组件,用于构建企业级应用程序。Spring框架包含了很多模块,包括核心容器、数据访问、事物…...

Kubernetes入门笔记——(2)k8s设计文档
k8s最初源自谷歌的Brog项目,架构与其类似,主要包括etcd、api server、controller manager、scheduler、kubelet和kube-proxy等组件 etcd:分布式存储,保存k8s集群的状态 api server:资源操作的唯一入口,…...
LoadBalancer将服务暴露到外部实现负载均衡metallb-layer2模式配置介绍
目录 一.metallb简介 1.支持多种负载均衡协议 2.支持自定义 IP 地址范围 3.无需额外的硬件设备 4.易于安装和配置 5.可扩展性强 6.layer2模式下选举的leader节点压力大 二.layer2模式配置演示 1.开启ipvs并开启严格ARP模式 2.下载并应用metallb 3.创建一个 IPAddres…...

【pytest】单元测试文件的写法
前言 可怜的宾馆,可怜得像被12月的冷雨淋湿的一条三只腿的黑狗。——《舞舞舞》 \;\\\;\\\; 目录 前言test_1或s_test格式非测试文件pytest.fixture()装饰器pytestselenium test_1或s_test格式 要么 test_前缀 在前,要么 _test后缀 在后! …...

arcgis for js 添加自定义叠加图片到地图坐标点上
在使用arcgis for js开发地图绘制图层时,可以通过相关api实现添加图标到某个坐标点,那么如果现在有一个需要添加一个小图叠大图的需求,又或者是自定义绘制图标,如何实现? 1、简单地绘制一个图标到底图图层上面 const…...
记录 | linux下互换键盘的Ctrl和CapsLock键
互换ctrl和CapsLK setxkbmap -option "ctrl:swapcaps"打开设置文件: sudo vim /etc/default/keyboard将其中的XKBOPTIONS中添加ctrl:swapcaps即可,如下所示: # KEYBOARD CONFIGURATION FILE# Consult the keyboard(5) manual pa…...

【公网远程手机Android服务器】安卓Termux搭建Web服务器
🎥 个人主页:深鱼~🔥收录专栏:cpolar🌄欢迎 👍点赞✍评论⭐收藏 目录 概述 1.搭建apache 2.安装cpolar内网穿透 3.公网访问配置 4.固定公网地址 5.添加站点 概述 Termux是一个Android终端仿真应用程…...

【银行测试】金融项目+测试方法范围分析,功能/接口/性能/安全...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、金融行业软件特…...

Java网络编程——安全网络通信
在网络上,信息在由源主机到目标主机的传输过程中会经过其他计算机。在一般情况下,中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易时,网络上的信息有可能被非法分子监听,从而导致个人隐私的泄露。由于Intern…...
云原生数据库是什么?它的作用是啥?
目前来说,各厂商的云原生数据库在演进路线上分成了两个略有不同的路径来解决不同的问题。 一种是各大公有云厂商选择的,优先保证上云兼容性的路线,就是基于存算分离架构对传统数据库进行改造的路线:通过把大量的日志操作放到后台…...
使用ansible批量初始化服务器
简介 本文详细介绍ansible怎么批量初始化服务器,包括ansible批量初始化服务器详细配置和步骤,有需要的小伙伴们可以参考借鉴,希望对大家有所帮助。 详细步骤 1、ansible要初始化的主机 [rootnginx ansible]# tail -3 /etc/ansible/hosts …...

国标GB28181安防视频云平台EasyCVR出现持续重启现象,是什么问题?该如何解决?
视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能…...
【APP安卓测试工具】adb(Android Debug Bridge)
1.常见的命令 列出已连接的设备 adb device安装 adb install <APK文件路径>卸载 adb uninstall <APK文件路径>启动和停止 adb shell am start -n <包名>[/<Activity>]adb shell am force -stop <包名>截屏和录屏 adb shell screencap <文件路…...
图像融合领域的挑战
图像融合是将来自不同传感器或不同时间的多个图像集成为信息更丰富的单个图像的过程,通常预计更有利于人类或机器感知或进一步的图像处理任务。 以下是图像融合研究中的一些众所周知的挑战: 保持图像质量:确保融合图像保留每个源图像的重要特…...

Tomcat配置成服务、开机自启动
Tomcat配置成服务、开机自启动 问题解决方案 问题 在配置成开机自启动的服务时,遇到了如下提示。 最终原因是因为双击apache-tomcat-9.0.83\bin\tomcat9w.exe,在弹出的的“Startup”选项卡中的mode没有设置为Java 解决方案 右键“我的电脑”——管理—…...

IntelliJ IDEA创建一个spark的项目
在开始之前,需要说明的是 要跑通基本的wordcount程序,是不需要在windows上安装 hadoop 和spark的,因为idea在跑程序的时候,会按照 pom.xml配置文件,从指定的 repository源,按照properties指定的版本&#x…...

【数据库】数据库多种锁模式,共享锁、排它锁,更新锁,增量锁,死锁消除与性能优化
多种锁模式的封锁系统 专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会…...

串口通信(1)-硬件知识
本文讲解串口通信的硬件知识。让读者快速了解硬件知识,为下一步编写代码做基础。 目录 一、概述 二、串口通信分类 2.1信息的传送方向进行分类 2.2同步通信和异步通信 三、串口协议 3.1 RS232 3.1.1 电气特性 3.1.2 连接器的机械特性 3.1.3 连接类型 3.1…...

越南语翻译,人工翻译哪个值得信赖?
近年来,随着中越两国的交流日益频繁,为了促进双方的交流与理解,市场上对越南语翻译的需求也日益增加。那么,如何做好越南语翻译,人工翻译哪家公司值得信赖呢? 据了解,中文翻译越南语是一项颇具挑…...

攻防世界题目练习——Web引导模式(五)(持续更新)
题目目录 1. FlatScience2. bug3. Confusion1 1. FlatScience 参考博客: 攻防世界web进阶区FlatScience详解 题目点进去如图,点击链接只能看到一些论文pdf 用dirsearch和御剑扫描出一些隐藏文件: robots.txt: admin.php: login.php: f…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...