后端面试题整理-1
1.Maven 依赖传递产生版本冲突怎么解决?
- 升级或降级依赖版本:通过修改相关依赖的版本号,选择与项目其他依赖兼容的版本。可以通过查看 Maven 依赖树来确定哪些依赖冲突,并找出合适的版本号进行调整。
- 排除依赖:对于特定的依赖关系,可以使用 <exclusions> 元素来排除传递性依赖。例如,如果某个依赖引入了与其他依赖冲突的版本,你可以在该依赖项的声明中添加 <exclusions> 标签,指定要排除的冲突依赖。
- 引入冲突解决依赖:有时可以通过引入专门用于解决依赖冲突的依赖项来解决问题。例如,可以使用 Apache Maven 插件的 maven-dependency-plugin 来分析和解决依赖冲突。
- 调整依赖顺序:在 <dependencies> 元素中,可以通过调整依赖声明的顺序来优化依赖解析过程。将可能引起冲突的依赖声明放在前面,可以改变传递性依赖的解析顺序。
- 使用 <dependencyManagement> :在项目的根 pom.xml 文件中使用<dependencyManagement> 元素,可以集中管理项目中所有依赖的版本。通过明确指定每个依赖的版本号,可以避免不同模块的依赖版本冲突。
2.HashMap 底层原理?
JDK 1.7 数组 + 链表 ——> JDK 1.8 数组 + (链表 | 红黑)
(JDK 1.7 HashMap 底层原理)
- 初始化一个数组(默认长度16)
- 当 put 值时,计算 key 的 hash 值,二次 hash 然后对数组长度取模,对应到数组下标
- 如果没有产生 hash 冲突(下标位置没有元素),则直接创建 Node 存入数组
- 如果产生 hash 冲突,先进行 equal 比较,相同则取代该元素,不同,则插入链表
(JDK 1.8 HashMap 底层原理)
- 计算 key 的 hash 值,二次 hash 然后对数组长度取模,对应到数组下标
- 如果没有产生 hash 冲突(下标位置没有元素),则直接创建 Node 存入数组,
- 如果产生 hash 冲突,先进行 equal 比较,相同则取代该元素,不同,则判断链表高度插入链表,链表高度达到8,并且数组长度到64则转变为红黑树,长度低于6则将红黑树转回链表
- 如果存储的数据 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 时,常用的一些命令如下:
- mvn clean:清除项目中的 target 目录。
- mvn compile:编译项目源代码。
- mvn test:运行项目的测试用例。
- mvn package:将项目打包成 jar、war 等格式。
- mvn install:将项目安装到本地 Maven 仓库中。
6.Git 的常用命令?
Git 是一款分布式版本控制系统,用于跟踪文件的变化并协调多个人员之间的协作。以下是 Git 中常用的一些命令:
- git init:初始化一个新的 Git 仓库。
- git clone:克隆远程仓库到本地。
- git add:将文件的更改添加到暂存区。
- git commit:提交暂存区的更改到版本库。
- git push:将本地仓库的更改推送到远程仓库。
- git pull:从远程仓库拉取最新的更改到本地。
- git log:查看提交日志。
- git checkout:切换分支或恢复文件。
- git merge:合并指定分支到当前分支。
7.MySQL 调优?
MySQL 的性能调优可以通过多种方式来实现,以下是一些常见的 MySQL 调优方式:
- 优化查询语句:通过分析和优化 SQL 查询语句,包括使用合适的索引、避免全表扫描、减少不必要的连接和子查询等,以提高查询性能。
- 数据库设计优化:合理设计数据库结构,包括选择合适的数据类型、规范化数据库模式、适当拆分大表等,以提高数据库的性能和扩展性。
- 索引优化:对频繁查询的字段添加合适的索引,避免过多或不必要的索引,以加速数据检索操作。
- 查询缓存:利用 MySQL 的查询缓存功能,对静态数据进行缓存,减少对数据库的访问次数。
- 查询优化器调整:通过分析查询执行计划,对查询优化器进行调整,以提高查询性能。
- 分区表:对大型表进行分区,可以提高查询性能和数据维护效率。
- 数据库连接池:通过使用数据库连接池,减少数据库连接的创建和销毁开销,提高数据库的并发处理能力。
相关文章:
后端面试题整理-1
1.Maven 依赖传递产生版本冲突怎么解决? 升级或降级依赖版本:通过修改相关依赖的版本号,选择与项目其他依赖兼容的版本。可以通过查看 Maven 依赖树来确定哪些依赖冲突,并找出合适的版本号进行调整。排除依赖:对于特定…...
Python图像处理之光斑分析
文章目录 质心目标截取光斑半径 python图像处理教程:初步📷插值变换📷形态学处理📷滤波 光斑是工程中经常出现的图像数据,其特点是目标明确,分布清晰。对光斑图像的分析,主要包括质心定位、目标…...
软件测试 - 测试用例基本理论
1. 概念 为了特定的目的(该目的是检验代码是否满足用户需求)而设计的文档,文档包含测试输入、执行条件、预期结果等。文档的形式一般是excel表格。 比如说我们买了一台电脑,新买的笔记本检查完外观之后第一步需要查看电脑是否能够正常开机,…...
在 Flutter 中使用 flutter_gen 简化图像资产管理
你是否厌倦了在 Flutter 项目中手动管理图像资产的繁琐任务? 告别手工输入资源路径的痛苦,欢迎使用“Flutter Gen”高效资源管理的时代。在本文中,我将带您从手动处理图像资源的挫折到动态生成它们的便利。 选择1:痛苦手动添加–…...
两天学会微服务网关Gateway-Gateway过滤器
锋哥原创的微服务网关Gateway视频教程: Gateway微服务网关视频教程(无废话版)_哔哩哔哩_bilibiliGateway微服务网关视频教程(无废话版)共计17条视频,包括:1_Gateway简介、2_Gateway工作原理、3…...
图像处理 mask掩膜
1,图像算术运算 图像的算术运算有很多种,比如两幅图像可以相加,相减,相乘,相除,位运算,平方根,对数,绝对值等;图像也可以放大,缩小,旋…...
信驰达ESP32-C3/RTL8720CM WiFi开发板RF-WT01上线
为方便客户快速选型和验证WiFi模块,深圳市信驰达科技有限公司推出了WiFi开发板RF-WT01,支持适配信驰达RF-WM-ESP32B1、RF-WM-20CMB1、RF-WM-11AFB1、RF-WM-20DNB1 4款WiFi串口模块使用,方便客户实现对信驰达WiFi模块的快速测试和评估。 图1RF…...
【产品经理方法论——产品的基本概念】
1. 产品学三元素 产品学有三个元素:用户、需求、产品 产品学的内容:根据用户的需求设计产品,使用产品服务用户 仅仅通过三个元素无法说明每个元素的概念,因为三个元素互为说明关系。 通过引入人/群体来说明三个元素的关系。 需…...
推特API(Twitter API)V2 查询用户信息
前面章节已经介绍使用code换取Token的整个流程了,这里不再重复阐述了,下面我们介绍如何使用Token查询用户信息等操作。 1.引入相关依赖Maven <dependency> <groupId>oauth.signpost</groupId> <artifactId>signpost-co…...
在Elasticsearch IK分词器中更新、停用某些专有名词
在Elasticsearch IK分词器中更新、停用某些专有名词 目前IK分词器对于现有的新名词或者流行语没有做区分比如"白嫖" “奥利给”,或者对一些没有用的字比如 “的” "地"进行分词其实没有必要过多的分词只会占用宝贵的内存空间,所以如…...
时钟显示 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>集合对象属性拷贝工具类
目录 问题现象: 问题分析: 解决方法: 问题现象: 最近在项目中经常会使用到BeanUtils工具类来作对象的属性字段拷贝,但如果应用到List集合的话就需要遍历去操作了,如下: 打印结果: …...
请说明Vue中的异步组件加载
Vue中的异步组件加载是指当页面需要渲染某个组件时,可以在需要时再去加载这个组件,而不是在页面初始化的时候就将所有组件一次性加载进来。这种方式能够有效降低页面的初始加载时间,提升用户体验。 在Vue中,我们可以使用import函…...
目标检测5:采用yolov8, RK3568上推理实时视频流
上一个效果图,海康球机对着电脑屏幕拍,清晰度不好。 RK3568接取RTSP视频流,通过解码,推理,编码,最终并把结果推出RTSP视频流。 数据集采用coco的80个种类集,通过从yovo8.pt,转换成R…...
微服务:Feign篇
1.什么是Feign Feign是一种声明式、模板化的HTTP客户端,可用于调用HTTP API实现微服务之间的远程服务调用。它的特点是使用少量的配置定义服务客户端接口,可以实现简单和可重用的RPC调用。 先来看我们以前利用RestTemplate发起远程调用的代码ÿ…...
基于chatgpt的聊天机器人
基于chatgpt的聊天机器人 以下是一个基于Python的示例代码,展示如何在本地环境中使用预训练的ChatGPT模型构建一个简单的聊天机器人应用程序。在这个示例中,我们将使用Hugging Face Transformers库加载GPT-2模型,并创建一个基于命令行的用户…...
BAT常见的20道Android面试题详解,我的头条面试经历分享
二、面试 下面主要列举下在面试过程中遇到过的剑指 offer 原题或者类似问题,大家应该清楚,面试过程中遇到原题不要太高兴,而刷剑指 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 作为函数执行
报错: 在执行matlab脚本的时候出现报错。 >> imread 尝试将 SCRIPT imread 作为函数执行: S:\temp_file\matlab\DigitalImageProcessing\imread.m出错 imread (line 2) I imread(S:\temp_file\matlab\DigitalImageProcessing\blueman.png);分析以及解决方…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
