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

后端面试题整理-1

1.Maven 依赖传递产生版本冲突怎么解决?

  1. 升级或降级依赖版本:通过修改相关依赖的版本号,选择与项目其他依赖兼容的版本。可以通过查看 Maven 依赖树来确定哪些依赖冲突,并找出合适的版本号进行调整。
  2. 排除依赖:对于特定的依赖关系,可以使用 <exclusions> 元素来排除传递性依赖。例如,如果某个依赖引入了与其他依赖冲突的版本,你可以在该依赖项的声明中添加 <exclusions> 标签,指定要排除的冲突依赖。
  3. 引入冲突解决依赖:有时可以通过引入专门用于解决依赖冲突的依赖项来解决问题。例如,可以使用 Apache Maven 插件的 maven-dependency-plugin 来分析和解决依赖冲突。
  4. 调整依赖顺序:在 <dependencies> 元素中,可以通过调整依赖声明的顺序来优化依赖解析过程。将可能引起冲突的依赖声明放在前面,可以改变传递性依赖的解析顺序。
  5. 使用 <dependencyManagement> :在项目的根 pom.xml 文件中使用<dependencyManagement> 元素,可以集中管理项目中所有依赖的版本。通过明确指定每个依赖的版本号,可以避免不同模块的依赖版本冲突。

2.HashMap 底层原理?

   JDK 1.7 数组 + 链表 ——> JDK 1.8 数组 + (链表 | 红黑)

(JDK 1.7 HashMap 底层原理)

  1. 初始化一个数组(默认长度16)
  2. 当 put 值时,计算 key 的 hash 值,二次 hash 然后对数组长度取模,对应到数组下标
  3. 如果没有产生 hash 冲突(下标位置没有元素),则直接创建 Node 存入数组
  4. 如果产生 hash 冲突,先进行 equal 比较,相同则取代该元素,不同,则插入链表

(JDK 1.8 HashMap 底层原理)

  1. 计算 key 的 hash 值,二次 hash 然后对数组长度取模,对应到数组下标
  2. 如果没有产生 hash 冲突(下标位置没有元素),则直接创建 Node 存入数组,
  3. 如果产生 hash 冲突,先进行 equal 比较,相同则取代该元素,不同,则判断链表高度插入链表,链表高度达到8,并且数组长度到64则转变为红黑树,长度低于6则将红黑树转回链表
  4. 如果存储的数据 key 为 null ,存在下标为0的位置

3.== 和 equal 有什么区别?

在 Java 中,== 和 equals() 都是比较对象是否相等的方法,但它们的实现方式和比较的含义不同。

== 是比较两个对象是否在内存中引用同一块地址空间,即比较两个对象的内存地址是否相同。如果两个引用变量指向同一块内存地址,则返回 true;否则返回 false。在比较基本数据类型时,使用==比较的是它们的值是否相等。

equals() 是比较两个对象在逻辑上是否相等,即比较两个对象的内容是否相同。在 Java 中,Object 类中的 equals() 方法默认实现就是比较两个对象的内存地址是否相等,因此需要在具体类中重写 equals() 方法来实现逻辑上的相等判断。例如,对于 String 类型的数据,equals() 方法会比较两个字符串的内容是否相等。

总之,==用于比较两个对象的引用是否相等,而 equals() 方法用于比较两个对象在逻辑上是否相等。在比较对象时,应根据具体的需求选择使用 == 或 equals() 方法。

4.Integer 和 int 有什么区别? 应用场景分别是什么?

int 是Java 的基本数据类型之一,用于表示整数值。它占用固定的内存空间,通常是 4个字节。

Integer 是一个类,属于 Java 中的包装类,它将 int 包装为一个对象,从而提供了一些额外的功能。

Integer 类位于 java.lang 包中,因此在使用时不需要显式导入。 int 是基本数据类型,它在内存中的存储效率较高,适用于大量需要整数运算的情况,当需要在面向对象的环境中处理整数值时,可以使用 Integer 包装类。它使得 int 可以像对象一样进行操作。在集合框架(如 ArrayList,HashMap 等)中,由于集合要求存储对象而不是原始数据类型,所以可以使用 Integer 作为元素。在需要进行数据类型转换时,Integer 可以通过方法提供更多灵活性,可以将 Integer 转换为字符串(使用 toString() 方法)Integer 对象允许表示 null 值,而 int 不行。这在某些情况下可能会很有用,比如表示缺失数据。

5.Maven 常用命令?

Maven 是一个 Java 项目构建和管理工具,它可以自动化完成编译、测试、打包、发布等一系列工作。在使用 Maven 时,常用的一些命令如下:

  1. mvn clean:清除项目中的 target 目录。
  2. mvn compile:编译项目源代码。
  3. mvn test:运行项目的测试用例。
  4. mvn package:将项目打包成 jar、war 等格式。
  5. mvn install:将项目安装到本地 Maven 仓库中。

6.Git 的常用命令?

Git 是一款分布式版本控制系统,用于跟踪文件的变化并协调多个人员之间的协作。以下是 Git 中常用的一些命令:

  1. git init:初始化一个新的 Git 仓库。
  2. git clone:克隆远程仓库到本地。
  3. git add:将文件的更改添加到暂存区。
  4. git commit:提交暂存区的更改到版本库。
  5. git push:将本地仓库的更改推送到远程仓库。
  6. git pull:从远程仓库拉取最新的更改到本地。
  7. git log:查看提交日志。
  8. git checkout:切换分支或恢复文件。
  9. git merge:合并指定分支到当前分支。

7.MySQL 调优?

MySQL 的性能调优可以通过多种方式来实现,以下是一些常见的 MySQL 调优方式:

  1. 优化查询语句:通过分析和优化 SQL 查询语句,包括使用合适的索引、避免全表扫描、减少不必要的连接和子查询等,以提高查询性能。
  2. 数据库设计优化:合理设计数据库结构,包括选择合适的数据类型、规范化数据库模式、适当拆分大表等,以提高数据库的性能和扩展性。
  3. 索引优化:对频繁查询的字段添加合适的索引,避免过多或不必要的索引,以加速数据检索操作。
  4. 查询缓存:利用 MySQL 的查询缓存功能,对静态数据进行缓存,减少对数据库的访问次数。
  5. 查询优化器调整:通过分析查询执行计划,对查询优化器进行调整,以提高查询性能。
  6. 分区表:对大型表进行分区,可以提高查询性能和数据维护效率。
  7. 数据库连接池:通过使用数据库连接池,减少数据库连接的创建和销毁开销,提高数据库的并发处理能力。

相关文章:

后端面试题整理-1

1.Maven 依赖传递产生版本冲突怎么解决&#xff1f; 升级或降级依赖版本&#xff1a;通过修改相关依赖的版本号&#xff0c;选择与项目其他依赖兼容的版本。可以通过查看 Maven 依赖树来确定哪些依赖冲突&#xff0c;并找出合适的版本号进行调整。排除依赖&#xff1a;对于特定…...

Python图像处理之光斑分析

文章目录 质心目标截取光斑半径 python图像处理教程&#xff1a;初步&#x1f4f7;插值变换&#x1f4f7;形态学处理&#x1f4f7;滤波 光斑是工程中经常出现的图像数据&#xff0c;其特点是目标明确&#xff0c;分布清晰。对光斑图像的分析&#xff0c;主要包括质心定位、目标…...

软件测试 - 测试用例基本理论

1. 概念 为了特定的目的(该目的是检验代码是否满足用户需求)而设计的文档&#xff0c;文档包含测试输入、执行条件、预期结果等。文档的形式一般是excel表格。 比如说我们买了一台电脑&#xff0c;新买的笔记本检查完外观之后第一步需要查看电脑是否能够正常开机&#xff0c;…...

在 Flutter 中使用 flutter_gen 简化图像资产管理

你是否厌倦了在 Flutter 项目中手动管理图像资产的繁琐任务&#xff1f; 告别手工输入资源路径的痛苦&#xff0c;欢迎使用“Flutter Gen”高效资源管理的时代。在本文中&#xff0c;我将带您从手动处理图像资源的挫折到动态生成它们的便利。 选择1&#xff1a;痛苦手动添加–…...

两天学会微服务网关Gateway-Gateway过滤器

锋哥原创的微服务网关Gateway视频教程&#xff1a; Gateway微服务网关视频教程&#xff08;无废话版&#xff09;_哔哩哔哩_bilibiliGateway微服务网关视频教程&#xff08;无废话版&#xff09;共计17条视频&#xff0c;包括&#xff1a;1_Gateway简介、2_Gateway工作原理、3…...

图像处理 mask掩膜

1&#xff0c;图像算术运算 图像的算术运算有很多种&#xff0c;比如两幅图像可以相加&#xff0c;相减&#xff0c;相乘&#xff0c;相除&#xff0c;位运算&#xff0c;平方根&#xff0c;对数&#xff0c;绝对值等&#xff1b;图像也可以放大&#xff0c;缩小&#xff0c;旋…...

信驰达ESP32-C3/RTL8720CM WiFi开发板RF-WT01上线

为方便客户快速选型和验证WiFi模块&#xff0c;深圳市信驰达科技有限公司推出了WiFi开发板RF-WT01&#xff0c;支持适配信驰达RF-WM-ESP32B1、RF-WM-20CMB1、RF-WM-11AFB1、RF-WM-20DNB1 4款WiFi串口模块使用&#xff0c;方便客户实现对信驰达WiFi模块的快速测试和评估。 图1RF…...

【产品经理方法论——产品的基本概念】

1. 产品学三元素 产品学有三个元素&#xff1a;用户、需求、产品 产品学的内容&#xff1a;根据用户的需求设计产品&#xff0c;使用产品服务用户 仅仅通过三个元素无法说明每个元素的概念&#xff0c;因为三个元素互为说明关系。 通过引入人/群体来说明三个元素的关系。 需…...

推特API(Twitter API)V2 查询用户信息

前面章节已经介绍使用code换取Token的整个流程了&#xff0c;这里不再重复阐述了&#xff0c;下面我们介绍如何使用Token查询用户信息等操作。 1.引入相关依赖Maven <dependency> <groupId>oauth.signpost</groupId> <artifactId>signpost-co…...

在Elasticsearch IK分词器中更新、停用某些专有名词

在Elasticsearch IK分词器中更新、停用某些专有名词 目前IK分词器对于现有的新名词或者流行语没有做区分比如"白嫖" “奥利给”&#xff0c;或者对一些没有用的字比如 “的” "地"进行分词其实没有必要过多的分词只会占用宝贵的内存空间&#xff0c;所以如…...

时钟显示 html JavaScript

sf.html <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>时间</title><script>function showTime(){var timenew Date();var datetime.getDate();var yeartime.getFullYear();var monthtime.getMonth()1;var …...

List<Object>集合对象属性拷贝工具类

目录 问题现象&#xff1a; 问题分析&#xff1a; 解决方法&#xff1a; 问题现象&#xff1a; 最近在项目中经常会使用到BeanUtils工具类来作对象的属性字段拷贝&#xff0c;但如果应用到List集合的话就需要遍历去操作了&#xff0c;如下&#xff1a; 打印结果&#xff1a; …...

请说明Vue中的异步组件加载

Vue中的异步组件加载是指当页面需要渲染某个组件时&#xff0c;可以在需要时再去加载这个组件&#xff0c;而不是在页面初始化的时候就将所有组件一次性加载进来。这种方式能够有效降低页面的初始加载时间&#xff0c;提升用户体验。 在Vue中&#xff0c;我们可以使用import函…...

目标检测5:采用yolov8, RK3568上推理实时视频流

上一个效果图&#xff0c;海康球机对着电脑屏幕拍&#xff0c;清晰度不好。 RK3568接取RTSP视频流&#xff0c;通过解码&#xff0c;推理&#xff0c;编码&#xff0c;最终并把结果推出RTSP视频流。 数据集采用coco的80个种类集&#xff0c;通过从yovo8.pt&#xff0c;转换成R…...

微服务:Feign篇

1.什么是Feign Feign是一种声明式、模板化的HTTP客户端&#xff0c;可用于调用HTTP API实现微服务之间的远程服务调用。它的特点是使用少量的配置定义服务客户端接口&#xff0c;可以实现简单和可重用的RPC调用。 先来看我们以前利用RestTemplate发起远程调用的代码&#xff…...

基于chatgpt的聊天机器人

基于chatgpt的聊天机器人 以下是一个基于Python的示例代码&#xff0c;展示如何在本地环境中使用预训练的ChatGPT模型构建一个简单的聊天机器人应用程序。在这个示例中&#xff0c;我们将使用Hugging Face Transformers库加载GPT-2模型&#xff0c;并创建一个基于命令行的用户…...

BAT常见的20道Android面试题详解,我的头条面试经历分享

二、面试 下面主要列举下在面试过程中遇到过的剑指 offer 原题或者类似问题&#xff0c;大家应该清楚&#xff0c;面试过程中遇到原题不要太高兴&#xff0c;而刷剑指 offer 就能让遇到原题的可能性大大增加。 1.字节跳动春招 面试题 68 - II. 二叉树的最近公共祖先 2.京东…...

python66-Python的循环之常用工具函数

使用zip()函数可以把两个列表“压缩”成一个zip对象(可迭代对象),这样就可以使用一个循环并行遍历两个列表。为了测试 zip()函数的功能,我们可以先在交互式解释器中“试验”一下该函数的功能。 # !/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2024/01# @Author : …...

Cocos Creator 3.8.x 制作模糊效果(比如游戏弹窗需要的模糊效果)

接着上一个讨论的话题,关于3.8.x的后效,今天来分享自定义后效来制作模糊效果,并将他应用到弹窗中做背景,话不多说开整。 一:最终效果 首先咱们来看官网自定义后效怎么搞的,从它的实例开始:自定义后效 二:定义PostProcessSettings给节点提供资源(通过编辑器修改参数的…...

MATLAB报错:尝试将 SCRIPT imread 作为函数执行

报错&#xff1a; 在执行matlab脚本的时候出现报错。 >> imread 尝试将 SCRIPT imread 作为函数执行: S:\temp_file\matlab\DigitalImageProcessing\imread.m出错 imread (line 2) I imread(S:\temp_file\matlab\DigitalImageProcessing\blueman.png);分析以及解决方…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...