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

2025新鲜出炉--前端面试题(一)

文章目录

      • 1. vue3有用过吗, 和vue2之间有哪些区别
      • 2. vue-router有几种路由, 分别怎么实现
      • 3. webpack和rollup这两个什么区别, 你会怎么选择
      • 4. 你能简单介绍一下webpack项目的构建流程吗
      • 5. webpack平时有手写过loader和plugin吗
      • 6. webpack这块你平时做过哪些优化吗?
      • 7. var, let, const都有什么区别?
      • 8. const a = { b: 1 }; a.b = 2有什么方法让他赋值无效?
      • 9. arr = [6, 4, 5, 3, 1, 8]能不能用快速排序把数组升序?
      • 10. 能不能实现一个洗牌算法,打乱一个升序数组?
      • 11. 如何计算一个算法的时间复杂度和空间复杂度?
      • 12. promise你平时有哪些使用场景?
      • 13. 实现一个sleep(1000)方法
      • 14.现在有10个请求, 但是同一时间只能发送三个, 并要保证顺序
      • 15.能否用C3动画实现一个旋转效果
      • 16. flex用过吗, 都有哪些属性, flex-grow属性是做什么的
      • 17. 如何实现一个元素水平垂直同时居中
      • 18.在平时项目中你都做过哪些性能优化
      • 19. 能否手写实现一个防抖函数

在这里插入图片描述

1. vue3有用过吗, 和vue2之间有哪些区别

在这里插入图片描述

是的,我有使用过 Vue 3。Vue 3 与 Vue 2 之间的一些主要区别包括:

  • 组合式 API:Vue 3 引入了 Composition API,它允许我们将相关代码逻辑组织在一起,而不是分散在不同的生命周期钩子和属性中,这有助于代码的维护和重用。
  • 性能提升:Vue 3 使用了 Proxy 实现响应式系统,这使得它的性能比 Vue 2 的 Object.defineProperty 更好,尤其是在处理大型数据对象时。
  • Tree-shaking 支持:Vue 3 的设计允许通过 tree-shaking 来减少最终构建的体积,因为组件的 API 是按需导入的。
  • 更好的类型支持:Vue 3 从一开始就考虑了 TypeScript 的支持,使得类型推断更加准确。
  • 新的生命周期钩子:例如 setup() 钩子,它是在组件创建之前调用的。
  • Fragment、Teleport 和 Suspense:Vue 3 支持了多个根节点(Fragment),Teleport 提供了一种将子组件渲染到 DOM 树的其他位置的方法,而 Suspense 则提供了等待嵌套组件渲染的机制。

2. vue-router有几种路由, 分别怎么实现

Vue Router 主要有以下几种路由方式:
实现这些路由通常是在 Vue Router 的配置对象中定义路由规则,然后使用 <router-view><router-link> 组件在应用中展示和导航。
- 动态路由匹配:通过 :param 的方式定义动态路由参数,例如 /user/:id
- 嵌套路由:在路由配置中使用 children 属性来定义子路由。
- 编程式导航:通过调用 router.pushrouter.replace 等方法来实现编程式导航。
- 命名视图:可以在同一个路由下定义多个视图,通过命名视图可以实现多视图布局。
- 重定向和别名:通过 redirect 属性进行重定向,或者使用 alias 属性为路由定义别名。
在这里插入图片描述

3. webpack和rollup这两个什么区别, 你会怎么选择

Webpack 和 Rollup 有以下区别:
我会根据项目需求来选择。如果是在开发应用,我会选择 Webpack,因为它提供了更全面的工具链支持。如果是在开发库或框架,我会倾向于使用 Rollup,因为它可以生成更简洁的代码。

  • 设计理念:Webpack 是为了处理复杂的模块依赖关系而设计的,适用于应用程序开发。Rollup 则专注于 ES6 模块打包,更适合库和框架的开发。
  • 功能:Webpack 提供了丰富的插件系统,可以处理多种类型的资源,如图片、样式表等。Rollup 则更专注于 JavaScript 的打包,插件较少。
  • 代码分割:Webpack 内置了代码分割功能,可以按需加载模块。Rollup 则需要借助插件来实现。

4. 你能简单介绍一下webpack项目的构建流程吗

Webpack 的构建流程大致如下:

  • 入口:Webpack 从定义的入口文件开始,递归地解析每个模块的依赖关系。
  • 加载器(Loaders):Webpack 使用加载器来处理非 JavaScript 文件,将它们转换为模块。
  • 插件(Plugins):在构建过程中,插件可以执行各种任务,如打包优化、资源管理和环境变量注入等。
  • 模块解析:Webpack 解析每个模块的路径和依赖关系。
  • 打包:Webpack 将所有模块打包成一个或多个 bundle。
  • 输出:最后,Webpack 将打包后的文件输出到指定的目录。

5. webpack平时有手写过loader和plugin吗

是的,我有手写过简单的 Webpack loader 和 plugin。一个 loader 是一个用于转换模块源代码的函数,它接收源代码作为参数,并返回转换后的代码。例如,我写过将特定格式的文件转换为 JavaScript 模块的 loader。而 plugin 则是用于扩展 Webpack 功能的对象,它通过在 Webpack 生命周期的特定时点挂载自定义函数来实现。我写过一些简单的 plugin,比如用于清理构建目录或在构建完成后执行某些自定义任务的 plugin。这些经验帮助我更好地理解了 Webpack 的工作原理,并能够根据项目需求进行定制化处理。

6. webpack这块你平时做过哪些优化吗?

在使用 Webpack 进行项目构建时,我进行了一些优化措施来提升构建速度和减少最终包的大小:

  • 使用 webpack-merge 合并配置:我将基础配置和开发/生产环境配置分开,使用 webpack-merge 来合并配置,这样可以保持配置的可维护性。
  • 利用 SplitChunksPlugin 进行代码分割:通过配置 SplitChunksPlugin,我将公共的依赖模块提取到单独的 chunk 中,这样可以利用浏览器缓存,减少重复加载。
  • 使用 TerserPlugin 进行代码压缩:在生产环境中,我使用 TerserPlugin 来压缩 JavaScript 代码,减少文件体积。
  • 开启 tree-shaking:确保只打包用到的模块和代码,减少不必要的代码。
  • 配置 externals:对于一些大型的库,比如 lodashmoment,我会将它们配置为外部依赖,避免打包到最终的 bundle 中。
  • 使用 webpack-bundle-analyzer 分析打包结果:通过可视化工具来分析打包后的文件大小,进一步优化。
  • 利用缓存:通过配置 cache-loaderHardSourceWebpackPlugin 来缓存构建结果,提高二次构建的速度。

7. var, let, const都有什么区别?

  • var 是 ES5 中的变量声明方式,它具有函数作用域或全局作用域,存在变量提升的问题,且可以重复声明。
  • let 是 ES6 中引入的,它具有块级作用域,不存在变量提升,但可以在同一作用域内重复声明。
  • const 也是 ES6 中引入的,用于声明一个只读的常量引用,它同样具有块级作用域,且不允许重复声明。但是,const 声明的对象属性是可以修改的,因为 const 只保证变量名指向的地址不变,不保证地址内的值不变。

8. const a = { b: 1 }; a.b = 2有什么方法让他赋值无效?

要使 a.b = 2 赋值无效,可以使用 Object.freeze() 方法来冻结对象,这样就不能再修改对象的属性了。示例代码如下:

const a = Object.freeze({ b: 1 });
a.b = 2; // 这行代码不会生效,因为对象已经被冻结

9. arr = [6, 4, 5, 3, 1, 8]能不能用快速排序把数组升序?

function quickSort(arr) {if (arr.length <= 1) {return arr;}const pivot = arr[0];const left = [];const right = [];for (let i = 1; i < arr.length; i++) {if (arr[i] < pivot) {left.push(arr[i]);} else {right.push(arr[i]);}}return quickSort(left).concat(pivot, quickSort(right));
}const sortedArr = quickSort([6, 4, 5, 3, 1, 8]);
console.log(sortedArr); // 输出升序数组

10. 能不能实现一个洗牌算法,打乱一个升序数组?

可以使用 Fisher-Yates(也称为 Knuth)洗牌算法来实现。以下是该算法的一个简单实现:

function shuffleArray(arr) {for (let i = arr.length - 1; i > 0; i--) {const j = Math.floor(Math.random() * (i + 1));[arr[i], arr[j]] = [arr[j], arr[i]]; // 交换元素}return arr;
}const orderedArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const shuffledArray = shuffleArray(orderedArray);
console.log(shuffledArray); // 输出打乱后的数组

11. 如何计算一个算法的时间复杂度和空间复杂度?

时间复杂度是指算法执行的时间与输入数据量之间的关系。计算时间复杂度的步骤通常包括:

  • 确定算法的基本操作:基本操作通常是算法中出现次数最多的原子操作。
  • 分析算法中基本操作的执行次数:这通常涉及到循环的次数,递归的深度等。
  • 表达基本操作的执行次数与输入规模的关系:使用大O符号表示法来描述这种关系。

空间复杂度是指算法在执行过程中临时占用存储空间的大小。计算空间复杂度的步骤通常包括:

  • 确定算法中使用的变量和数据结构:包括局部变量、全局变量、递归栈等。
  • 分析这些变量和数据结构所占用的空间大小:通常考虑最坏情况下的空间占用。
  • 表达空间占用与输入规模的关系:同样使用大O符号表示法。

12. promise你平时有哪些使用场景?

Promise 是 JavaScript 中用于处理异步操作的一种机制。以下是一些常见的使用场景:

  • 异步网络请求:例如,使用 fetch API 进行网络请求时,返回的是一个 Promise 对象。
  • 异步文件操作:例如,在 Node.js 中读取文件时,可以使用 fs.promises API。
  • 数据库操作:在处理数据库查询时,很多数据库库都支持使用 Promise。
  • 执行顺序控制:需要按顺序执行一系列异步操作时,可以使用 Promise.then() 链式调用。
  • 并发控制:使用 Promise.all()Promise.race() 来处理多个并发异步操作。

13. 实现一个sleep(1000)方法

在 JavaScript 中,可以使用 Promise 来实现一个 sleep 函数:

function sleep(ms) {return new Promise(resolve => setTimeout(resolve, ms));
}// 使用示例
sleep(1000).then(() => {console.log('唤醒');
});

14.现在有10个请求, 但是同一时间只能发送三个, 并要保证顺序

可以使用 Promise 和队列来实现这个需求:

function sendRequest(requests, max) {let i = 0;const results = [];const executing = [];const enqueue = () => {if (i === requests.length) {return Promise.resolve();}const request = requests[i++].then(res => {results.push(res);return res;});executing.push(request);request.finally(() => executing.splice(executing.indexOf(request), 1));let r = Promise.resolve();if (executing.length >= max) {r = Promise.race(executing);}return r.then(() => enqueue());};return enqueue().then(() => results);
}// 假设 `requests` 是一个包含10个请求的 Promise 数组
sendRequest(requests, 3).then(results => {console.log(results);
});

15.能否用C3动画实现一个旋转效果

可以使用 CSS3 的 @keyframes 规则和 transform 属性来实现旋转动画:

@keyframes rotate {from {transform: rotate(0deg);}to {transform: rotate(360deg);}
}.rotate-element {animation: rotate 2s linear infinite;
}

然后在 HTML 中应用这个类:

<div class="rotate-element">旋转我</div>

这样, rotate-element 类的元素就会持续旋转。

16. flex用过吗, 都有哪些属性, flex-grow属性是做什么的

是的,我经常使用 Flexbox 布局,因为它提供了一种更加灵活的方式来对齐和分配容器内元素的空间,即使它们的大小是未知或者是动态的。

Flexbox 的主要属性可以分为两类:容器属性和项目属性。

容器属性 包括:

  • display: 定义一个元素是否是一个 Flex 容器。
  • flex-direction: 定义主轴的方向。
  • flex-wrap: 定义容器是单行还是多行,以及如何处理子元素的换行。
  • flex-flow: 是 flex-directionflex-wrap 的简写形式。
  • justify-content: 定义了项目在主轴上的对齐方式。
  • align-items: 定义项目在交叉轴上如何对齐。
  • align-content: 定义了多根轴线的对齐方式。

项目属性 包括:

  • order: 定义项目的排列顺序。
  • flex-grow: 定义项目的放大比例,即如果存在剩余空间,项目应该放大的比例。
  • flex-shrink: 定义项目的缩小比例。
  • flex-basis: 定义了在分配多余空间之前,项目占据的主轴空间。
  • flex: 是 flex-grow, flex-shrinkflex-basis 的简写。
  • align-self: 允许单个项目有与其他项目不一样的对齐方式。

flex-grow 属性的作用是定义当父容器的空间有剩余时,子元素应该如何放大。它接受一个无单位的比例值,默认值为 0,表示即使有剩余空间,也不会放大。如果所有子元素的 flex-grow 值总和超过 1,它们会按照比例分配剩余空间。

17. 如何实现一个元素水平垂直同时居中

有多种方法可以实现元素的水平垂直居中:

使用 Flexbox:

.parent {display: flex;justify-content: center;align-items: center;
}.child {/* 子元素样式 */
}

使用 Grid:

.parent {display: grid;place-items: center;
}.child {/* 子元素样式 */
}

使用定位和 transform:

.parent {position: relative;
}.child {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);
}

18.在平时项目中你都做过哪些性能优化

在项目中,我通常会进行以下性能优化:

  1. 代码分割:使用 Webpack 等模块打包工具进行代码分割,减少单次加载的资源大小。
  2. 懒加载:对于非首屏内容,使用懒加载技术,按需加载资源。
  3. 图片优化:使用适当格式的图片,如 WebP,以及压缩图片大小。
  4. 缓存利用:利用 HTTP 缓存,减少重复资源的加载。
  5. CSS/JS 文件压缩:通过压缩工具减小文件体积。
  6. 使用 CDN:通过 CDN 加速静态资源的加载。
  7. 减少重绘和回流:优化 DOM 操作,避免不必要的重绘和回流。
  8. 使用服务端渲染 (SSR):对于首屏内容,使用 SSR 加速内容的呈现。

19. 能否手写实现一个防抖函数

function debounce(func, wait) {let timeout;return function() {const context = this;const args = arguments;clearTimeout(timeout);timeout = setTimeout(() => {func.apply(context, args);}, wait);};
}// 使用示例
window.addEventListener('resize', debounce(function() {console.log('窗口大小改变了!');
}, 250));

这个防抖函数会在事件触发后等待指定的等待时间( wait ),如果在这段时间内事件再次触发,则会重新计时。只有在等待时间结束后没有再次触发事件,才会执行传入的函数。

相关文章:

2025新鲜出炉--前端面试题(一)

文章目录 1. vue3有用过吗, 和vue2之间有哪些区别2. vue-router有几种路由, 分别怎么实现3. webpack和rollup这两个什么区别, 你会怎么选择4. 你能简单介绍一下webpack项目的构建流程吗5. webpack平时有手写过loader和plugin吗6. webpack这块你平时做过哪些优化吗&#xff1f;7…...

【ArcGIS Pro 简介1】

ArcGIS Pro 是由 Esri &#xff08;Environmental Systems Research Institute&#xff09;公司开发的下一代桌面地理信息系统&#xff08;GIS&#xff09;软件&#xff0c;是传统 ArcMap 的现代化替代产品。它结合了强大的空间分析能力、直观的用户界面和先进的三维可视化技术…...

CentOS 6.5编译Rsyslog 8.1903.0

个人博客地址&#xff1a;CentOS 6.5编译Rsyslog 8.1903.0 | 一张假钞的真实世界 个人很早之前的博文&#xff0c;迁移至此作为历史记录。 源码下载参考我的另外一片博文&#xff1a;CentOS 7.3 编译 Rsyslog 8.1903.0。 本篇博文从创建构建环境开始填坑/(ㄒoㄒ)/~~。通过上…...

SQLAlchemy-2.0中模型定义和alembic的数据库迁移工具

SQLAlchemy-2.0中模型定义和alembic的数据库迁移工具 一、SQLAIchemy的介绍二、数据库引擎1、支持的数据库1.1、sqlite数据库1.2、MySQL数据库1.3、数据库引擎的参数 三、定义模型类1、定义模型2、engine负责数据库迁移 四、alembic数据库迁移⼯具1、安装alembic2、初始化alemb…...

两种文件类型(pdf/图片)打印A4半张纸方法

环境:windows10、Adobe Reader XI v11.0.23 Pdf: 1.把内容由横排变为纵排&#xff1a; 2.点击打印按钮&#xff1a; 3.选择打印页范围和多页&#xff1a; 4.内容打印在纸张上部 图片&#xff1a; 1.右键图片点击打印&#xff1a; 2.选择打印类型&#xff1a; 3.打印配置&am…...

【React】合成事件语法

React 合成事件是 React 为了处理浏览器之间的事件差异而提供的一种跨浏览器的事件系统。它封装了原生的 DOM 事件&#xff0c;提供了一致的事件处理机制。 合成事件与原生事件的区别&#xff1a; 合成事件是 React 自己实现的&#xff0c;封装了原生事件。合成事件依然可以通…...

深入解析:如何利用 Python 爬虫获取商品 SKU 详细信息

在电商领域&#xff0c;SKU&#xff08;Stock Keeping Unit&#xff0c;库存单位&#xff09;详细信息是电商运营的核心数据之一。它不仅包含了商品的规格、价格、库存等关键信息&#xff0c;还直接影响到库存管理、价格策略和市场分析等多个方面。本文将详细介绍如何利用 Pyth…...

Unity 加载OSGB(webgl直接加载,无需转换格式!)

Unity webgl加载倾斜摄影数据 前言效果图后续不足 前言 Unity加载倾斜摄影数据&#xff0c;有很多的插件方便好用&#xff0c;但是发布到网页端均失败&#xff0c;因为webgl 的限制&#xff0c;IO读取失效。 前不久发现一个开源项目: UnityOSGB-main 通过两种方式在 Unity 中…...

Maven架构项目管理工具

1.1什么是Maven 翻译为“专家”&#xff0c;“内行”Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建&#xff0c;依赖管理和项目信息管理。什么是理想的项目构建&#xff1f; 高度自动化&#xff0c;跨平台&#xff0c;可重用的组件&#xff0c;标准化的 什么…...

【漫画机器学习】083.安斯库姆四重奏(Anscombe‘s Quartet)

安斯库姆四重奏&#xff08;Anscombes Quartet&#xff09; 1. 什么是安斯库姆四重奏&#xff1f; 安斯库姆四重奏&#xff08;Anscombes Quartet&#xff09;是一组由统计学家弗朗西斯安斯库姆&#xff08;Francis Anscombe&#xff09; 在 1973 年 提出的 四组数据集。它们…...

【梦想终会实现】Linux驱动学习5

加油加油坚持住&#xff01; 1、 Linux驱动模型&#xff1a;驱动模型即将各模型中共有的部分抽象成C结构体。Linux2.4版本前无驱动模型的概念&#xff0c;每个驱动写的代码因人而异&#xff0c;随后为规范书写方式&#xff0c;发明了驱动模型&#xff0c;即提取公共信息组成一…...

QT修仙之路1-1--遇见QT

文章目录 遇见QT二、QT概述2.1 定义与功能2.2 跨平台特性2.3 优点汇总 三、软件安装四、QT工具介绍(重要)4.1 Assistant4.2 Designer4.3 uic.exe4.4 moc.exe4.5 rcc.exe4.6 qmake4.7 QTcreater 五、QT工程项目解析(作业)5.1 配置文件&#xff08;.pro&#xff09;5.2 头文件&am…...

【实战篇】Android安卓本地离线实现视频检测人脸

实战篇Android安卓本地离线实现视频检测人脸 引言项目概述核心代码类介绍人脸检测流程项目地址总结 引言 在当今数字化时代&#xff0c;人脸识别技术已经广泛应用于各个领域&#xff0c;如安防监控、门禁系统、移动支付等。本文将以第三视角详细讲解如何基于bifan-wei-Face/De…...

【图像处理】- 基本图像操作

基本图像操作详解 基本图像操作是图像处理的基础&#xff0c;涵盖了对图像进行简单但重要的变换。以下是几种常见的基本图像操作及其详细说明&#xff1a; 1. 裁剪 (Cropping) 描述&#xff1a;从原始图像中提取一个矩形区域。 实现方法&#xff1a; 使用图像的坐标系指定…...

代码随想录算法训练营| 二叉树总结

代码随想录 二叉树的理论基础&#xff1a;二叉树种类、存储方式、遍历方式、定义方式 二叉树遍历&#xff1a;深度优先和广度优先 二叉树属性&#xff1a;对称、深度、节点、平衡、路径、回溯 修改与构造&#xff1a;反转、构造、合并 涉及到二叉树的构造&#xff0c;无论普…...

Sentinel的安装和做限流的使用

一、安装 Release v1.8.3 alibaba/Sentinel GitHubA powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件) - Release v1.8.3 alibaba/Sentinelhttps://github.com/alibaba/Senti…...

八、Spring Boot 日志详解

目录 一、日志的用途 二、日志使用 2.1 打印日志 2.1.1 在程序中获取日志对象 2.1.2 使用日志对象打印日志 2.2、日志框架介绍 2.2.1 门面模式(外观模式) 2.2.2 门面模式的实现 2.2.3 SLF4J 框架介绍 2.3 日志格式的说明 2.4 日志级别 2.4.1 日志级别的分类 2.4.2…...

vue2:如何动态控制el-form-item之间的行间距

需求 某页面有查看和编辑两种状态: 编辑: 查看: 可以看到,查看时,行间距太大导致页面不紧凑,所以希望缩小查看是的行间距。 行间距设置 行间距通常是通过 CSS 的 margin 或 padding 属性来控制的。在 Element UI 的样式表中,.el-form-item 的下边距(margin-bottom)…...

智能门铃市场:开启智能家居新时代

在科技日新月异的今天&#xff0c;智能家居产品正以前所未有的速度融入我们的生活&#xff0c;而智能门铃作为其中的重要一员&#xff0c;不仅为我们的家居生活带来了极大的便利&#xff0c;更在安全方面提供了坚实的保障。它就像一位忠诚的守门人&#xff0c;无论白天黑夜&…...

C基础寒假练习(6)

一、终端输入行数&#xff0c;打印倒金字塔 #include <stdio.h> int main() {int rows;printf("请输入倒金字塔的行数: ");scanf("%d", &rows);for (int i rows; i > 0; i--) {// 打印空格for (int j 0; j < rows - i; j) {printf(&qu…...

【深度学习】基于MXNet的多层感知机的实现

多层感知机 结构组成 大致由三层组成&#xff1a;输入层-隐藏层-输出层&#xff0c;其中隐藏层大于等于一层 其中&#xff0c;隐藏层和输出层都是全连接 隐藏层的层数和神经元个数也是超参数 多层隐藏层&#xff0c;在本质上仍等价于单层神经网络&#xff08;可从输出方程…...

Mac 终端命令大全

—目录操作— ꔷ mkdir 创建一个目录 mkdir dirname ꔷ rmdir 删除一个目录 rmdir dirname ꔷ mvdir 移动或重命名一个目录 mvdir dir1 dir2 ꔷ cd 改变当前目录 cd dirname ꔷ pwd 显示当前目录的路径名 pwd ꔷ ls 显示当前目录的内容 ls -la ꔷ dircmp 比较两个目录的内容 di…...

【蓝桥杯嵌入式】2_LED

1、电路图 74HC573是八位锁存器&#xff0c;当控制端LE脚为高电平时&#xff0c;芯片“导通”&#xff0c;LE为低电平时芯片“截止”即将输出状态“锁存”&#xff0c;led此时不会改变状态&#xff0c;所以可通过led对应的八个引脚的电平来控制led的状态&#xff0c;原理图分析…...

微信小程序~电器维修系统小程序

博主介绍&#xff1a;✌程序猿徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

链式结构二叉树(递归暴力美学)

文章目录 1. 链式结构二叉树1.1 二叉树创建 2. 前中后序遍历2.1 遍历规则2.2 代码实现图文理解 3. 结点个数以及高度等二叉树结点个数正确做法&#xff1a; 4. 层序遍历5. 判断是否完全二叉树 1. 链式结构二叉树 完成了顺序结构二叉树的代码实现&#xff0c;可以知道其底层结构…...

gc buffer busy acquire导致的重大数据库性能故障

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…...

Unity中Spine骨骼动画完全指南:从API详解到避坑实战

Unity中Spine骨骼动画完全指南&#xff1a;从API详解到避坑实战 一、为什么要选择Spine&#xff1f; Spine作为专业的2D骨骼动画工具&#xff0c;相比传统帧动画可节省90%资源量。在Unity中的典型应用场景包括&#xff1a; 角色换装系统&#xff08;通过插槽替换部件&#xf…...

面经-C语言——堆和栈的区别,引用和指针区别,Linux的常用指令,RS232和RS485,TCP连接建立与断开

面经-C语言——堆和栈的区别&#xff0c;引用和指针区别&#xff0c;Linux的常用指令,RS232和RS485,TCP连接建立与断开 堆(Heap)和栈(Stack)的详细比较引用和指针区别对比表&#xff1a;Linux的常用指令RS232和RS485的详细比较&#xff1a;TCP连接建立与断开三次握手&#xff0…...

(2024|Nature Medicine,生物医学 AI,BiomedGPT)面向多种生物医学任务的通用视觉-语言基础模型

BiomedGPT: A generalist vision–language foundation model for diverse biomedical tasks 目录 1. 摘要 2. 引言 3. 相关研究 3.1 基础模型与通用生物医学 AI 3.2 生物医学 AI 的局限性 3.3 BiomedGPT 的创新点 4. 方法 4.1 架构及表示 4.1.1 模型架构选择 4.1.2 …...

python代码

python\main_script.py from multiprocessing import Process import subprocessdef call_script(args):# 创建一个新的进程来运行script_to_call.pyprocess Process(targetrun_script, args(args[0], args[1]))process.start()process2 Process(targetrun_script, args(arg…...

mongodb 使用内存过大分析

ps aux 内存使用 ps aux|head -1;ps aux|grep -v PID|sort -rn -k 4|head -10swap 使用 for i in $(ls /proc | grep "^[0-9]" | awk $0>100); do awk /Swap:/{aa$2}END{print "$i",a/1024"M"} /proc/$i/smaps;done| sort -k2nr | headmon…...

服务器虚拟化技术深度解析:原理、实践与未来趋势

文章目录 引言&#xff1a;数字化转型的核心引擎第一章 服务器虚拟化技术演进史1.1 虚拟化技术发展脉络1.2 虚拟化技术演进图谱 第二章 虚拟化核心技术解析2.1 Hypervisor架构类型2.1.1 Type 1 裸金属架构2.1.2 Type 2 宿主型架构 2.2 虚拟化实现方式对比2.3 关键技术创新2.3.1…...

C语言常见概念

目录 第一个C语言程序 main函数 写法&#xff1a; printf和库函数 printf()函数 库函数 关键字 字符和ASCII码表 字符串和\0 转义字符 语句 注释 注释的两种形式 第一个C语言程序 #include<stdio.h>//第一个c语言程序 int main() {printf("Hello World…...

sql字符串函数及字符拼接函数

concat(str1,str2)函数&#xff1a;拼接字符串 UPPER(str)&#xff1a;字符串变成大写 LOWER(str)&#xff1a;字符串变小写 LENGTH(str)&#xff1a;获取字符串的长度 left(str,len)&#xff1a;获取字符串左边len个字符 right(str,len)&#xff1a;获取字符串右边len个字符 s…...

Qt的QTableWidget类的声明定义和使用

QTableWidget类的声明定义 QTableWidget 是 Qt 框架中的一个类&#xff0c;它继承自 QAbstractItemView 并提供了用于显示和操作二维表格数据的接口。这个类不是由用户直接声明的&#xff0c;而是由 Qt 库提供的。你可以在你的 Qt 应用程序中通过包含相应的头文件来使用它。 …...

【kafka实战】06 kafkaTemplate java代码使用示例

在 Spring Boot 中使用 KafkaTemplate 可以方便地向 Kafka 发送消息。下面为你详细介绍使用步骤和示例代码。 1. 创建 Spring Boot 项目 你可以使用 Spring Initializr&#xff08;https://start.spring.io/ &#xff09;来创建一个新的 Spring Boot 项目&#xff0c;添加以下…...

使用C#开发一款通用数据库管理工具

由于经常使用各种数据库&#xff0c;笔者自己动手丰衣足食&#xff0c;使用C#开发了一款通用数据库管理工具&#xff0c;支持Mysql、Oracle、Sqlite、SQL Server等数据库的表、视图、存储过程、函数管理功能&#xff0c;并支持导入导出、数据字典生成、拖拽式跨机器跨库数据一键…...

90.子集||

要求所有可能的子集&#xff0c;不能重复&#xff0c;因此对于相同的数字&#xff0c;要考虑去重&#xff0c;去重的方式就是通过排序&#xff0c;排序后相同的数字相邻&#xff0c;这样进行实现迭代时&#xff0c;若没有选择上一个数&#xff0c;&#xff0c;其当前数字与上一…...

windows phpstudy python cgi配置

修改apache配置文件:httpd.conf 搜索’Define SRVROOT’&#xff0c; 查看cgi根目录&#xff0c;python脚本需要放在该 Define SRVROOT "D:/Program/phpstudy_pro/Extensions/Apache2.4.39解决中文乱码 文件最后添加AddDefaultCharset gbk 重启apache python脚本: #!py…...

Java 大数据与区块链的融合:数据可信共享与溯源(45)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

Axure PR 9 动效 设计交互

大家好&#xff0c;我是大明同学。 这期内容&#xff0c;我们来用Axure制作一组动效。 动效 创建动效元件 1.打开一个新的 RP 文件并在画布上打开 Page 1。 2.选中画布&#xff0c;将画布填充颜色设置为蓝色(#0052D9)。 3.在元件库中拖出一个圆形元件&#xff0c;选中矩形元件&…...

element-plus+vue3前端如何根据name进行搜索查到符合条件的数据

界面如图&#xff0c;下面的区域是接口给的所有的&#xff0c;希望前端根据输入的内容自己去匹配。 我是使用的element-plusvue3ts的写法。 <el-input v-model"filters.region" placeholder"输入区域搜索" keyup"filterRegion(filters.region)&q…...

hot100-day1

1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int,int> map1;for(int i0;i<nums.size();i) map1[nums[i]] i;for(int i0;i<nums.size();i){…...

webrtc编译需要常用环境变量以及相关名词解释

set vs2022_installD:\\vs2022 set GYP_MSVS_OVERRIDE_PATHD:\\vs2022 set GYP_GENERATORSmsvs-ninja,ninja set WINDOWSSDKDIRD:\\Windows Kits\10 set DEPOT_TOOLS_WIN_TOOLCHAIN0 set GYP_MSVS_VERSION2022 这些环境变量是为了编译 WebRTC 时让 GYP/Depot Tools 正确找到 V…...

PostgreSQL函数自动Commit/Rollback所带来的问题

一、综述 今天在PostgreSQL遇到一个奇怪的现象&#xff0c;简而言之&#xff0c;是想用函数&#xff08;存储过程&#xff09;实现插入记录&#xff0c;整个过程没报错但事后却没找到记录&#xff01;忙活半天&#xff0c;才发现原因是PostgreSQL函数&#xff08;存储过程&…...

开源项目介绍-词云生成

开源词云项目是一个利用开源技术生成和展示词云的工具或框架&#xff0c;广泛应用于文本分析、数据可视化等领域。以下是几个与开源词云相关的项目及其特点&#xff1a; Stylecloud Stylecloud 是一个由 Maximilianinir 创建和维护的开源项目&#xff0c;旨在通过扩展 wordclou…...

VSCode设置——通过ctrl+鼠标滚动改变字体大小(新版本的vs)

"editor.mouseWheelZoom": true 第一步&#xff1a; 第二步&#xff1a;...

多种蝴蝶识别分割数据集labelme格式784张9类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;784 标注数量(json文件个数)&#xff1a;784 标注类别数&#xff1a;9 标注类别名称:["Monarch","Zebra Longwing"…...

DeepSeek R1本地化部署 Ollama + Chatbox 打造最强 AI 工具

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; Ollama &#x1f98b; 下载 Ollama&#x1f98b; 选择模型&#x1f98b; 运行模型&#x1f98b; 使用 && 测试 二&#xff1a;&#x1f525; Chat…...

SqlSugar简单使用之Nuget包封装-Easy.SqlSugar.Core

SqlSugar官方文档 Nuget包开源地址 Nuget包是为了简化SqlSugar的使用步骤,增加一些基础的使用封装 引入分为两个版本&#xff0c;一个Ioc模式&#xff0c;另一个是注入模式&#xff0c;如果不想影响原本的仓储代码推荐使用Ioc模式&#xff0c;两者区别不到&#xff0c;方法通…...