当前位置: 首页 > news >正文

面试题目总结(三)

1. Spring、Springboot、springMVC、Spring Cloud 的区别:

  1. Spring:Spring 是一个开源的、轻量级的Java框架,提供了丰富的功能和组件,用于构建企业级应用程序。Spring框架包含了很多模块,包括核心容器、数据访问、事物管理、AOP、Web开发等,可以根据需要选择使用不同的模块。
  2. Springboot:Springboot 是基于 Spring 框架的快速开发框架,旨在简化 Spring 应用程序的配置和部署过程。它提供了自动配置,快速启动,约定优于配置等特性,使得开发者可以更加专注于业务逻辑的实现而不需要过多关注繁琐的配置。Springboot还集成了常用的功能,如嵌入式服务器、安全性、健康检查等,方便快速构建独立的可执行JAR包。
  3. SpringMVC:SpringMVC是Spring 框架中的一个模块,用于开发基于MVC(Model-View-Controller)架构程序。它提供了一套处理HTTP请求和响应的机制,支持通过注解或配置文件进行请求映射、请求参数处理、视图解析等操作。SpringMVC是一个灵活且功能的Web框架,可以与其他Spring模块(如Springboot)进行集成使用。
  4. SpringCloud 是一个基于Springboot的开发工具集,用于构建分布式系统和微服务架构。它提供了一系列的组件和模块,用于解决分布式系统中的常见问题,例如访问注册与发现、负载均衡、熔断器、配置管理等。

2. 使用线程池创建线程时参数有哪些

  1. corePoolSize:核心线程池大小,表示线程池在保持的线程数码,即使它们处于空闲状态。当提交一个新的任务到线程时,如果当前线程池中的线程数量少于corePoolSize,则会常见一个新的线程来处理该任务,即使此时其他空闲的基本线程能够处理该任务也会创建新的线程,直到到达corePoolSize为止。
  2. maximumPoolSize:最大线程池大小,表示线程池中最多呢创建的线程数目。当提交一个新任务到线程池时,如果当前线程池中的线程数目已经达到corePoolSize,并且缓冲队列已满,则会根据maximumPoolSize的值来判断是否创建新的线程。如果当前线程池中的线程数目小于maximumPoolSize,则会创建新的线程。如果当前线程池中的线程数目等于或大于maximunPoolSize,则不会创建新的线程。
  3. keepAliveTime:线程池维护线程所允许的空闲时间,默认情况下,KeepAliveTime设置为0表示线程空闲后立即终止。当线程池中线程数量超过corePoolSize时,如果这些多余的线程空闲时间超过KeepAliveTime时长,则这些多余的线程将会被终止。
  4. unit:keepAliveTime的单位,可以是TimeUnit.MILLISECONDS(毫秒)、TimeUnit.SECONDS(秒)等等。
  5. workQueue:任务队列,用于储存已经提交但尚未执行的任务。常用的队列类型有:ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、PriorityBlockingQueue等。
  6. threadFactory:线程创建工厂,用于设置创建线程时的一些属性,例如线程名称、是否为守护线程等。
  7. handler:拒绝策略,表示当前线程池中的线程数目达到maximumPoolSize并且缓冲队列已满时,如何拒绝新任务的执行。常见的拒绝策略有以下几种:AbortPolicy、CallerRunPolicy、DiscardOldestPolicy、DiscardPolicy

3. 常见事物的隔离级别

事物的隔离级别是数据库管理系统中用来控制事物并发访问是数据可见性的一种机制

  1. 读未提交(Read Uncommitted):允许一个事读取另一个事务未提交的数据。这种隔离级别可能导致脏读,即一个事务读取了另一个事务未提交的数据,而后者最终被回滚,导致前者读取到的数据是无效的。
  2. 读已提交(Read Committed):保证一个事务只能读取到另一个事务已经提交的数据。这种隔离级别可以避免脏读,但可能导致不可重复读,即在同一个事务中,由于其他事物的提交,某个数据的值发生了变化。
  3. 可重复读(Repeatable Read):保证在同一个事务中多次读取同样的数据是,结果始终一致。这种隔离级别可以避免不可重复读,但可能会导致幻读,即在事务中,由于其他事务的插入或删除,出现了新增或减少的数据行。
  4. 序列化(Serializable):最高的隔离级别,通过强制事务船型执行来避免脏读、不可重复读和幻读、虽然可以解决并发访问导致的数据不一致问题,但会导致性能严重下降。

4. 数据库的索引类型有哪些

  1. B-树索引(B-tree Index):B-树是一种平衡的多路搜索树,常用于支持范围查询。它适用于大多数数据库系统,如MySQL、Oracle等。
  2. B+树索引(B+tree Index):B+树是在B-树的基础上进行优化的数据结构,它将所有的数据都储存在叶子节点,并使用连接叶子节点,适用于范围查询和数据访问。B+树索引在很多关系型数据库中被广泛使用。
  3. 哈希索引(Hash Index):哈希索引通过将索引列的值计算哈希值,然后根据哈希值进行快速查找。哈希索引适合等值查询,但不适合范围查询。例如,MySQL的内存表和MyISAM引擎支持哈希索引。
  4. 全文索引(Full-Text Index):全文索引通常用于对文本内容进行搜索。它可以创建关键词索引,以便在文本中进行全文索引。全文索引可以加快文本搜索的速度,常见的数据库系统如MySQL、PostgreSQL都提供了全文索引功能。
  5. 位图索引(Bitmap Index):位图索引将每个唯一的索引值与位图进行映射,位图的每一位表示对应索引值的存在或缺失。位图索引适用于低基数的列。比如性别、状态等。

5. SpringBoot 的执行流程

SpringBoot 是一个基于 Spring 框架的快速开发框架,它通过自动配置和约定优于配置的原则,简化了Spring应用程序的开发流程,提供了一种快速构建、易于部署的方式。

  1. 加载配置文件:SpringBoot 会自动加载 application.properties 或 application.yml 等配置文化,并将其中的配置顶绑定到对应的Java对象上,这些对象被称为Spring Bean。
  2. 创建 Spring IoC 容器:SpringBoot 会根据配置文件中的信息创建一个Spring IoC 容器,并将其中的所有Bean都装载到容器中,在这个过程中,SpringBoot 会自动扫描所有的类,并根据注解自动配置Bean。
  3. 运行应用程序:SpringBoot 会自动其实Web服务器,监听客户端请求,并将请求交给合适的Controller 进行处理。在 Controller 中,SpringBoot 会自动绑定请求参数和响应结果,并调用 Service处理业务逻辑。
  4. 处理请求:在处理请求的过程中,SpringBoot 会自动执行拦截器、过滤器等组件,以及处理异常、日志等功能。同时,SpringBoot 还提供了缓存、事务、安全、任务调度等常用功能,方便开发者使用。
  5. 关闭应用程序:当应用程序关闭时,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 <文件路…...

图像融合领域的挑战

图像融合是将来自不同传感器或不同时间的多个图像集成为信息更丰富的单个图像的过程&#xff0c;通常预计更有利于人类或机器感知或进一步的图像处理任务。 以下是图像融合研究中的一些众所周知的挑战&#xff1a; 保持图像质量&#xff1a;确保融合图像保留每个源图像的重要特…...

Tomcat配置成服务、开机自启动

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

IntelliJ IDEA创建一个spark的项目

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

【数据库】数据库多种锁模式,共享锁、排它锁,更新锁,增量锁,死锁消除与性能优化

多种锁模式的封锁系统 ​专栏内容&#xff1a; 手写数据库toadb 本专栏主要介绍如何从零开发&#xff0c;开发的步骤&#xff0c;以及开发过程中的涉及的原理&#xff0c;遇到的问题等&#xff0c;让大家能跟上并且可以一起开发&#xff0c;让每个需要的人成为参与者。 本专栏会…...

串口通信(1)-硬件知识

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

越南语翻译,人工翻译哪个值得信赖?

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

攻防世界题目练习——Web引导模式(五)(持续更新)

题目目录 1. FlatScience2. bug3. Confusion1 1. FlatScience 参考博客&#xff1a; 攻防世界web进阶区FlatScience详解 题目点进去如图&#xff0c;点击链接只能看到一些论文pdf 用dirsearch和御剑扫描出一些隐藏文件&#xff1a; robots.txt: admin.php: login.php: f…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...