面试题目总结(三)
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…...

attack vector
攻击介质,是指可以攻击信息系统,破坏其安全性的特定路径、方法或是情景。 vector 此处并不是向量的意思。...

好看的早上问候语早安图片,今天最新唯美温馨祝福语
1、天气冷了,情谊不凉,树叶黄了,思念不忘,问候像一杯热茶,让人暖心!祝愿我们与健康平安同行!朋友们,大家早上好! 2、多一个人牵挂是一种幸福;多一个人相知是一…...

人体关键点检测2:Pytorch实现人体关键点检测(人体姿势估计)含训练代码
人体关键点检测2:Pytorch实现人体关键点检测(人体姿势估计)含训练代码 目录 人体关键点检测2:Pytorch实现人体关键点检测(人体姿势估计)含训练代码 1. 前言 2.人体关键点检测方法 (1)Top-Down(自上而下)方法 (2)Bottom-Up(自下而上)方法࿱…...

聚类分析 | Matlab实现基于谱聚类(Spectral Cluster)的数据聚类可视化
聚类分析 | Matlab实现基于谱聚类(Spectral Cluster)的数据聚类可视化 目录 聚类分析 | Matlab实现基于谱聚类(Spectral Cluster)的数据聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于谱聚类(Spectral Cluster)的聚类算法可视化(完…...

【回眸】Tessy 单元测试软件使用指南(三)怎么打桩和指针测试
目录 前言 Tessy 如何进行打桩操作 普通桩 高级桩 手写桩 Tessy单元测试之指针相关测试注意事项 有类型的指针(非函数指针): 有类型的函数指针: void 类型的指针: 结语 前言 进行单元测试之后,但凡…...

关系型数据库-SQLite介绍
优点: 1>sqlite占用的内存和cpu资源较少 2>源代码开源,完全免费 3>检索速度上十几兆、几十兆的数据库sqlite很快,但是上G的时候最慢 4>管理简单,几乎无需管理。灵巧、快速和可靠性高 5>功能简…...

使用shell脚本将一台虚拟机上面数据分发到其他虚拟机上面xsync
目录 1,功能2,注意点3,shell脚本介绍4,bash内容 1,功能 使用shell脚本将一台虚拟机上面数据分发到其他虚拟机上面。 2,注意点 需要修改的地方:hadoop250 hadoop251 hadoop252 hadoop253 hado…...

OpenGL学习(二)绘制三维图形 固定管线
一.简单步骤 考虑顶点数据上色旋转 二.完整代码 myopenglwidget.h // An highlighted block #ifndef MYOPENGLWIDGET_H #define MYOPENGLWIDGET_H #include <QOpenGLWidget> #include <QOpenGLFunctions> #include <QOpenGLShaderProgram> #include <Q…...

微信小程序游戏:移动游戏市场的新兴力量
随着移动互联网的迅猛发展,微信小程序游戏已经成为现代数字娱乐领域的一股不可忽视的力量。这些游戏通过融入微信这一广泛使用的社交平台,为用户带来了全新的游戏体验。本文探讨了微信小程序游戏的特点、发展现状和未来趋势。 微信小程序游戏最大的特点之…...

Netflix Mac(奈飞客户端)激活版软件介绍
Netflix Mac(奈飞客户端)是一款流行的视频播放软件,专为Mac用户设计。它提供了大量的高质量电影、电视剧、纪录片和动画片资源,让用户可以随时随地观看自己喜欢的内容。 首先,Netflix Mac(奈飞客户端)以其简洁直观的用户界面而闻名。用户可以…...