JavaScript【4】数组和其他内置对象(API)
1.数组:
1.概述:
-
js中数组可理解为一个存储数据的容器,但与java中的数组不太一样;
-
js中的数组更像java中的集合,因为此集合在创建的时候,不需要定义数组长度,它可以实现动态扩容;
-
js中的数组存储元素时,可以存储任意类型的元素,而java中的数组一旦创建后,就只能存储定义类型的元素;
2.数组的创建:
1.方式1:通过new关键字创建(不常用);
let arr = new Array();arr[0]=元素1;arr[1]=元素2;........
2.方式2:通过字面量直接创建:
let arr=[元素1,元素2,.....]
let arr = ['这是数组的元素', 1, true, {name: '张三'}, null];
//Array.isArray(arr):判断是否为数组,如果通过typeof操作符来验证,数组会返回Object
console.log(Array.isArray(arr),arr);
3.数组的操作方法:
1.遍历数组:
方式1:for循环:
let arr = ['这是数组的元素', 1, true, {name: '张三'}, null];
for (let i = 0; i < arr.length; i++) {console.log(arr[i])}
方式2:foreach循环(IE8以下的浏览器可能不支持)
let arr = ['这是数组的元素', 1, true, {name: '张三'}, null];
//value 元素, index下标, array数组本身arr.forEach(function (value, index, array) {console.log(value, index)})

2.追加元素:
1.数组末尾追加元素:push()
let arr = ['这是数组的元素', 1, true, {name: '张三'}, null]; arr.push('追加数据1', '追加数据2');console.log(arr);
2.数组头部添加元素:unshift()
let arr = ['这是数组的元素', 1, true, {name: '张三'}, null]; arr.unshift('追加数据1', '追加数据2');console.log(arr);
3.删除元素:
1.删除末尾元素:pop()
let arr = ['这是数组的元素', 1, true, {name: '张三'}, null]; arr.pop();console.log(arr);
2.删除首位元素:shift()
let arr = ['这是数组的元素', 1, true, {name: '张三'}, null]; arr.shift('追加数据1', '追加数据2');console.log(arr);
4.数组反转:会改变原数组:reverse()
let arr = [1,2,3,4,5,6,7,8,9];arr.reverse();console.log(arr)
5.数组排序:默认按照Unicode编码排序:sort()
let arr = [5, 68, 8, 6, 3, 2, 4, 5, 6, 8, 7, 1, 32, 3];
arr.sort();
console.log(arr);
如果需要按照自定义的排序规则进行排序,就需要重写这个方法
let arr = [5, 68, 8, 6, 3, 2, 4, 5, 6, 8, 7, 1, 32, 3];
arr.sort(function (a, b) {//a - b; 小到大//b - a; 大到小return a - b;})
console.log(arr);
6.向数组中 添加 后者删除 或者 替换元素:splice()
let arr = ['a', 'b', 'c', 1, 2, 3];//index: 下标 必须 添加、删除元素的位置 可以使用负数 -1倒数第一个元素...//howmany: 数目 必须 要删除的元素的数量 如果设置为0 则不删除// ...item 可选 向数组中添加的元素console.log(arr.splice(2,1,'add1','add2'));console.log(arr);
上述代码表示从数组中下标为2的位置删除一个元素,并添加两个新元素,再将删除的元素返回
7.合并数组:
方式1:concat
let arr = [1, 2, 3];let arr2 = ['a', 'b', 'c'];let arr3 = ['A', 'B', 'C'];//将三个数组合并let res = arr.concat(arr2,arr3,'插入元素','插入元素')console.log(res);
方式2:数组展开语法(ES6特有)
let arr = [1, 2, 3];let arr2 = ['a', 'b', 'c'];let arr3 = ['A', 'B', 'C'];console.log([...arr,...arr2,...arr3])console.log( arr);
8.数组元素拼接为字符串:
方式1:toString
let arr = [1, 2, 3,'a','b','c']; console.log(arr.toString())
方式2:join方法:
let arr = [1, 2, 3,'a','b','c']; console.log(arr.join("-"));
9.字符串拆分成数组:split()
let str='1-2-3-a-b-c';
console.log(str.split('-'));
10.裁切数组的元素:slice()
let arr = ['a', 'b', 'c','d'];let result = arr.slice(1,3);console.log(result)console.log(...arr)
11.数组元素下标查询:indexof()/lastindexof()
let arr=[1,2,3,4,6,2,5];
//indexof查找首次出现的元素下标,查不到返回-1
console.log(arr.indexof(2));
let arr=[1,2,3,4,6,2,5];//lastindexof查找最后一次出现的元素下标,查不到返回-1console.log(arr.lastIndexOf(2));
12.数组遍历,并对获取到的每一个数据进行操作:map()
let arr = [5, 68, 8, 6, 3, 2, 4, 5, 6, 8, 7, 1, 32, 3];// 遍历数组 每次循环时执行调用函数,根据回调函数的返回值//生成新的数组并返回let res = arr.map(function (item, index, array) {return item * 2;})console.log(res)console.log(arr)
13.数组元素过滤:fliter()
// 遍历数组 把满足条件的数据筛选出来 方法新的数组中let list = [2, 4, 58, 45, 4, 57, 8, 12, 475, 43, 1, 24, 54, 56]// item 元素 , index 下标, array 数组本身let res = list.filter(function (item, index, array) {return item >= 50;})console.log(res)
14.数组元素判断:
1.判断所有元素是否都满足特定条件:every()
let list = [2, 4, 58, 45, 4, 57, 8, 12, 475, 43, 1, 24, 54, 56];//判断数组中所有的元素是否满足一个条件let result = list.every(function (item, index) {return item >= 50;})console.log(result)
2.判断任意元素是否满足特定条件:some()
let list = [2, 4, 58, 45, 4, 57, 8, 12, 475, 43, 1, 24, 54, 56];//判断数组中所有的元素是否满足一个条件let result = list.some(function (item, index) {return item >= 50;})console.log(result)
3.判断数组中是否存在目标元素:includes();
let list = [2, 4, 58, 45, 4, 57, 8, 12, 475, 43, 1, 24, 54, 56];
//判断数组中是否包含一个指定的值 如果存在 true 不存在falseconsole.log(list.includes(570))
15.数组元素累加和:reduce()/reduceRight()
reduceRight表示从后往前累加:
let list = [2, 4, 58, 45, 4, 57, 8, 12, 475, 43, 1, 24, 54, 56];/*** 求数组中所有的元素的累加和* sum = 0* prev:回调初始值 sum = 0* 可以设置初始化 如果没有设置初始值* 默认会将数组中的第一个元素 设置为初始值** item:每次循环的元素* index:每次循环的下标* array:当前数组* initVal:初始值*/let sum = list.reduce(function (prev, item, index, array) {console.log(prev, item, index, array)return prev + item;})console.log("和:",sum)
16.将对象转成数组:from()(不常用)
let person = {0: '张三',1: '28',2: '男',length: 3}let list = Array.from(person);console.log(list)
说明:
-
对象中必须有length属性,才可以进行转换;
-
对象的属性名必须是数组下标,否则转换之后无法获取到数组元素
2.其他内置对象:
1.Date:时间相关:
let date = new Date();console.log(date.getFullYear());console.log(date.getMonth()+1);console.log(date.getDate());console.log(date.getHours());console.log(date.getMinutes());console.log(date.getSeconds());console.log(date.getMilliseconds());
2.Math:数学相关:
console.log(Math.PI)console.log(Math.abs(1));console.log(Math.floor(1.99)) //向下去整数console.log(Math.ceil(1.1))//向上去整数console.log(Math.round(1.5))//四舍五入// 产生 0-1 之间的随机数console.log(Math.ceil(Math.random() * 10))
相关函数汇总:
3.String:字符串:
1.获取长度:length();
let str = "Hello,World!";console.log(str.length)
2.通过下标获取字符:charAt()
let str = "Hello,World!";console.log(str.charAt(0));
3.通过下标 获取 指定位置的字符的Unicode编码:charCodeAt();
let str = "Hello,World!";
console.log(str.charCodeAt(0));
4.字符串拼接:concat():
//参数是 string[]
console.log(str.concat('A','C','D'))
5.查找目标字符的下标:indexof/lastindexof()
let str = "Hello,World!";
//返回第一个遇到的字符串的下标
console.log(str.indexOf("l"))
//返回最后一次遇到的字符下标
console.log(str.lastIndexOf("A"))
6.截取字符串:
1.slice():
let str = "Hello,World!"; //截取字符串 包前不包后//第一个参数 :开始的下标位置//第二个参数可以为负数(-1表示 倒数第一个值) 如果不传 截取到末尾console.log(str.slice(1,4))console.log("原:",str);
2.substring():
let str = "Hello,World!"; //第一个参数 :开始的下标位置//注意 :第一个参数 如果大于第二个参数则会交换位置console.log(str.substring(4,1))console.log("原:",str);
3.substr():注意此方法已过期
let str = "Hello,World!"; //第一个参数 截取开始的下标//第二个参数 截取的长度console.log(str.substr(1,4))console.log("原:",str);
7.检查字符串中是否包含目标字符串:includes()
let str = "Hello,World!"; //检查字符串中是否包含 "," 包含 true 不包含 falseconsole.log(str.includes(","))
8.大小写转换:
1.转大写:toUpperCase():
let str = "Hello,World!"; console.log(str.toUpperCase())
2.转小写:toLowercase():
let str = "Hello,World!";console.log(str.toLowerCase())
3.正则表达式:
1.概述:
正则表达式指用于定义一些字符串的规则,可被用来检查一个字符串是否符合规则;
2.创建方式:
1.方式1:new
let reg = new RegExp('正则表达式','匹配模式');匹配模式:i:忽略大小写g:全局匹配ig:忽略大小写,且全局匹配
//创建正则表达式,判断字符串中是否存在‘ab’字符串(忽略大小写)let reg = new RegExp('ab','i');let str = 'Abc';console.log(reg.test(str))
方式2:字面量创建:
let reg=/正则表达式/匹配模式 匹配模式:i:忽略大小写g:全局匹配ig:忽略大小写,且全局匹配m:多行匹配
let reg = /a/i;let str = 'Abc';console.log(reg.test(str))*/
3.常用匹配规则:
正则表达式中可以使用[]来匹配大范围的数字或字母,他们表示或者的关系,如下所示:
-
- [a-z] 小写的 a-z之间的字符串
-
- [A-Z] 大写的 A-Z之间的字符串
-
- [A-z] 匹配的 A-z(大小写)之间的字符串
-
- [0-9] 匹配数字
-
-
- [^a-z] 除了小写的 a-z之间的字符串
-
- [^A-Z] 除了大写的 A-Z之间的字符串
-
- [^A-z] 匹配除了的 A-z(大小写)之间的字符串
-
- [^0-9] 匹配除了数字
-
4.正则方法:
实际上就是字符串方法的参数改为正则表达式
let str = "a1b2c3d5e6f8";//将字符串中分割字符串方法中的分割符参数改为正则表达式匹配的字符串// // let result = str.split(/[A-z]/);// let result = str.split(/[0-9]/);// console.log(result)
// let str = "hello abc hello aec arc";// 搜索字符串 没有没有找到返回-1//只会返回第一个遇到的字符串// let result = str.search(/a[be]c/);// console.log(result)
//提取符合正则表达式的内容// let str = "a1b2c3d5e6f8SENJHJ568";// // let result = str.match(/[a-z]/ig);// let result = str.match(/[A-z]/g);// console.log(result)
//替换replace 第一个参数为 要替换的内容(可以是正则表达式)let str = "a1b2c3d5e6f8SENJHJ568";let result = str.replace(/[A-z]/g, "&");console.log(result)
5.正则量词:
1.语法规则:
注意:**只匹配{}外第一个字符**,如果要匹配多个则要使用()将需要匹配的字符括起来
{n} 正好出现n次{m,} 正好出现m次{m,n} 正好出现m-n次+ 最少出现一次 类似于 {1,}* 0个或者多个 {0,}? 0个或者1个 {0,1}
2.示例:
let str = "b";// b 连续出现三次let reg = /b{3}/i;console.log(reg.test(str)) ;
let str = "ababab";ab 在字符串中连续出现3次let reg = /(ab){3}/i;console.log(reg.test(str)) ;
let str = "bbbbbbb";// b 连续最少出现三次 最多无上限let reg = /b{3,}/i;console.log(reg.test(str)) ;
let str = "bbbbbbb";// /^开头 正则 $结尾/匹配模式// b 连续最少出现三次 最多5次let reg = /^b{3,5}$/i ; console.log(reg.test(str)) ;
let str = "bbbbbbb";//最少出现一次let reg = /^b+$/i;console.log(reg.test(str)) ;
let str = "bbbbbbb";// 0个或者多个let reg = /^b*$/i;console.log(reg.test(str)) ;
let str = "bbbbbbb";//0 个或者一个let reg = /^b?$/i;console.log(reg.test(str))
6.其他匹配规则:
1.语法:
\.: 表示匹配'.' \\:表示匹配'\' \w:表示任意的字母 数字 下划线\W:表示除了任意的字母 数字 下划线\d:表示任意的数字\D:表示除了任意的数字\s:匹配空格\S:除了空格\b:单词边界\B:除了单词边界
2.正则匹配汇总:
3.示例:
let reg = /^\D$/let str = "1";console.log(reg.test(str))
let str = " hello zs ";//替换开头和结尾的两个空格为*let reg = /^\s*|\s*$/gconsole.log(str.replace(reg, "*"))
let str = "hello zs";let reg = /\bzs\b/console.log(reg.test(str))
let emailStr = "asd1.57@aliyun.com.cn";let emailReg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/console.log(emailReg.test(emailStr))
相关文章:
JavaScript【4】数组和其他内置对象(API)
1.数组: 1.概述: js中数组可理解为一个存储数据的容器,但与java中的数组不太一样;js中的数组更像java中的集合,因为此集合在创建的时候,不需要定义数组长度,它可以实现动态扩容;js中的数组存储元素时,可以存储任意类型的元素,而java中的数组一旦创建后,就只能存储定义类型的元…...
【背包dp-----分组背包】------(标准的分组背包【可以不装满的 最大价值】)
通天之分组背包 题目链接 题目描述 自 01 01 01 背包问世之后,小 A 对此深感兴趣。一天,小 A 去远游,却发现他的背包不同于 01 01 01 背包,他的物品大致可分为 k k k 组,每组中的物品相互冲突,现在&a…...
docker-compose——安装mongo
编写docker-compose.yml version : 3.8services:zaomeng-mongodb:container_name: zaomeng-mongodbimage: mongo:latestrestart: alwaysports:- 27017:27017environment:- MONGO_INITDB_ROOT_USERNAMEroot- MONGO_INITDB_ROOT_PASSWORDpssw0rdvolumes:- ./mongodb/data:/data/…...
day 28
类 一个常见的类的定义包括了: 1. 关键字class 2. 类名 3. 语法固定符号冒号(:) 4. 一个初始化函数__init__(self) Pass占位符和缩进 Python 通过缩进来定义代码块的结构。当解释器遇到像 def, class, if, for 这样的语句,并且后面跟着冒号 : 时&…...
JavaScript入门【1】概述
1.JavaScript是什么? <font style"color:rgb(38,38,38);">Javascript (简称“JS”)是⼀种直译式脚本语⾔,⼀段脚本其实就是⼀系列指令,计算机通过这些指令来达成⽬标。它⼜是⼀种动态类型的编程语⾔。JS⽤来在⽹…...
MySQL 中 JOIN 和子查询的区别与使用场景
目录 一、JOIN:表连接1.1 INNER JOIN:内连接1.2 LEFT JOIN:左连接1.3 RIGHT JOIN:右连接1.4 FULL JOIN:全连接二、子查询:嵌套查询2.1 WHERE 子句中的子查询2.2 FROM 子句中的子查询2.3 SELECT 子句中的子查询三、JOIN 和子查询的区别3.1 功能差异3.2 性能差异3.3 使用场…...
DeepSeek 大模型部署全指南:常见问题、优化策略与实战解决方案
DeepSeek 作为当前最热门的开源大模型之一,其强大的语义理解和生成能力吸引了大量开发者和企业关注。然而在实际部署过程中,无论是本地运行还是云端服务,用户往往会遇到各种技术挑战。本文将全面剖析 DeepSeek 部署中的常见问题,提…...
Python 3.11详细安装步骤(包含安装包)Python 3.11详细图文安装教程
文章目录 前言Python 3.11介绍Python 3.11安装包下载Python 3.11安装步骤 前言 作为当前最热门的编程语言之一,Python 3.11 不仅拥有简洁优雅的语法,还在性能上实现了飞跃,代码运行速度提升显著。无论是初入编程的小白,还是经验丰…...
虚拟主播肖像权保护,数字时代的法律博弈
首席数据官高鹏律师团队 在虚拟主播行业蓬勃发展的表象之下,潜藏着一场关乎法律边界的隐形战争。当一位虚拟偶像的3D模型被非法拆解、面部数据被批量复制,运营方惊讶地发现——传统的肖像权保护体系,竟难以完全覆盖这具由代码与数据构成的“…...
硬件工程师笔记——二极管Multisim电路仿真实验汇总
目录 1 二极管基础知识 1.1 工作原理 1.2 二极管的结构 1.3 PN结的形成 1.4 二极管的工作原理详解 正向偏置 反向偏置 multisim使用说明链接 2 二极管特性实验 2.1 二极管加正向电压 2.2 二极管加反向电压 2.3 二极管两端的电阻 2.4 交流电下二级管工作 2.5 二极…...
学习笔记(C++篇)—— Day 6
1.内部类 如果一个类定义在另一个类的内部,就叫做内部类。 例如下面一个代码示例: class A { private:static int _k;int _h 1; public:class B // B默认就是A的友元{public:void foo(const A& a){cout << _k << endl; //OKcout <&…...
常见的实时通信技术(轮询、sse、websocket、webhooks)
1. HTTP轮询:最老实的办法 刚开始做实时功能时,我第一个想到的就是轮询。特别简单直白,就像你每隔5分钟就刷新一次朋友圈看看有没有新消息一样。 短轮询:勤快但费劲 短轮询就是客户端隔三差五地问服务器:"有新…...
2025年第三届盘古石杯初赛(智能冰箱,监控部分)
前言 所以去哪里可以取到自己家里的智能家居数据呢???? IOT物联网取证 1、分析冰箱,请问智能冰箱的品牌? [答案格式:xiaomi] Panasonic2、请问智能冰箱的型号? [答案格式&#x…...
[强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程
本人为强化学习小白,为了在后续科研的过程中能够较好的结合强化学习来做相关研究,特意买了西湖大学赵世钰老师撰写的《强化学习数学原理》中文版这本书,并结合赵老师的讲解视频来学习和更深刻的理解强化学习相关概念,知识和算法技…...
基于STM32的INA226电压电流检测仪
系统总体框图 功率检测装置原理图功能及模块连接说明 一、系统功能概述 该装置以STM32F103C8T6微控制器为核心,集成功率检测、数据交互、状态显示和用户提示功能,通过模块化设计实现稳定运行。 二、各模块功能及连接方式 按键模块 功能:…...
Android7 Input(七)App与input系统服务建立连接
概述 本文主要讲述Android 系统创建窗口时与输入管理系统服务通过InputChannel通道建立通信桥梁的过程。 本文涉及的源码路径 frameworks/native/libs/input/InputTransport.cpp frameworks/base/core/java/android/view/InputChannel.java frameworks/base/core/java/andr…...
1.2 C++第一个程序
第一个程序:Hello World 教程 目标 用 cout 输出文字,学会用 endl 换行。理解程序的基本结构,明白 main 函数的作用。 一、程序是什么?——像“魔法食谱” 比喻:写程序就像写一份做蛋糕的食谱! 食材&am…...
Hi3516DV500刷写固件
hi3516DV500刷固件 1、硬件连接 2、软件准备 3、刷固件步骤 一、硬件连接 特别注意的是,串口的接线顺序 通过网线连接好笔记本和开发板后,需要确认一下网口水晶头是否闪烁,以确认网络物理是否连通 二、软件资源准备 固件包准备 打开工具…...
完整卸载 Fabric Manager 的方法
目录 ✅ 完整卸载 Fabric Manager 的方法 1️⃣ 停止并禁用服务 2️⃣ 卸载 Fabric Manager 软件包 3️⃣ 自动清理无用依赖(可选) 4️⃣ 检查是否卸载成功 ✅ 补充(仅清除服务,不删包) ✅ 完整卸载 Fabric Mana…...
linux标准库头文件解析
linuxc标准库 C 标准库(C Standard Library)包含了一组头文件,这些头文件提供了许多函数和宏,用于处理输入输出、字符串操作、数学计算、内存管理等常见编程任务。。 头文件功能简介<stdio.h>标准输入输出库,包含…...
PLC和变频器之间如何接线
这篇文章想梳理一下,不同电平输出的PLC应该如何去接不同品牌的变频器 对于PLC的IO来讲,有高低电平输入的不同,有高低电平输出的区别 对于变频器的DI或DO来讲,不同的品牌内部线路和原理也有区别 我们场地现在用的是西门子1200的…...
【Spring】Spring的请求处理
欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄。 目录 引言HTTP/HTTPS协议Spring Web与Spring Web MVCSpring WebFlux 自定义的TPC/IP协议FTP、S…...
现代健康生活养生指南
现代社会中,熬夜加班、久坐不动、饮食不规律成为许多人的生活常态,由此引发的健康问题也日益增多。想要摆脱亚健康,不必依赖中医理念,从以下这些现代科学养生方法入手,就能逐步改善身体状况。 饮食上,注…...
使用tensorRT10部署低光照补偿模型
1.低光照补偿模型的简单介绍 作者介绍一种Zero-Reference Deep Curve Estimation (Zero-DCE)的方法用于在没有参考图像的情况下增强低光照图像的效果。 具体来说,它将低光照图像增强问题转化为通过深度网络进行图像特定曲线估计的任务。训练了一个轻量级的深度网络…...
题单:表达式求值1
题目描述 给定一个只包含 “加法” 和 “乘法” 的算术表达式,请你编程计算表达式的值。 输入格式 输入仅有一行,为需要计算的表达式,表达式中只包含数字、加法运算符 和乘法运算符 *,且没有括号。 所有参与运算的数字不超过…...
【ant design】ant-design-vue 4.0实现主题色切换
官网:Ant Design Vue — An enterprise-class UI components based on Ant Design and Vue.js 我图方便,直接在 app.vue 中加入的 <div class"app-content" v-bind:class"appOption.appContentClass"><a-config-provider…...
MinIO深度解析:从入门到实战——对象存储系统全指南
在当今数字化时代,数据存储至关重要。MinIO作为一款高性能的对象存储系统,正逐渐受到广泛关注。它与云原生存储系统相媲美,并且其API与Amazon S3完全兼容。本文将带您快速了解MinIO,并探讨其在实际中的应用场景。 一、关于MinIO …...
(8)python开发经验
文章目录 1 下载python2 pip安装依赖无法访问3 系统支持4 下载python文档5 设置虚拟环境6 编译安装python 更多精彩内容👉内容导航 👈👉Qt开发 👈👉python开发 👈 1 下载python 下载地址尽量不要下载最新版…...
uniapp自动构建pages.json的vite插件
对于 uniapp 来说,配置 pages.json 无疑是最繁琐的事情,具有以下缺点: 冗长,页面很多时 pages 内容会很长难找,有时候因为内容很长,导致页面配置比较难找,而且看起来比较凌乱json弊端ÿ…...
【MySQL进阶】如何在ubuntu下安装MySQL数据库
前言 🌟🌟本期讲解关于如何在ubuntu环境下安装mysql的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 dz…...
解放双手的全自动抠图工具
软件介绍 本文要介绍的这款软件是Teorex PhotoScissors,是一款全自动抠图软件。 第二段:软件便捷性 这款来自国外的软件堪称神器,目前已解锁可无限使用。使用起来特别方便,无需安装,打开即可直接操作,并…...
Python多进程编程执行任务
我的需求如下:现有一批任务,使用进程池执行,每个任务执行耗时不一样,任务并发执行期间,需要每隔一段时间监控任务执行进度 直接贴代码: import multiprocessing import time import random from multiproc…...
【Linux笔记】——Linux线程封装
🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:Linux 🌹往期回顾🌹:【Linux笔记】——Linux线程控制创建、终止与等待|动态库与内核联动 🔖流水不争,争的是…...
ChatGPT + DeepSeek 联合润色的 Prompt 模板指令合集,用来润色SCI论文太香了!
对于非英语母语的作者来说,写SCI论文的时候经常会碰到语法错误、表达不够专业、结构不清晰以及术语使用不准确等问题。传统的润色方式要么成本高、效率低,修改过程又耗时又费力。虽然AI工具可以帮助我们来润色论文,但单独用ChatGPT或DeepSeek都会存在内容泛泛、专业性不足的…...
【typenum】 9 与常量泛型桥接(generic_const_mappings.rs)
一、源码 该代码提供了常量结构体与库类型的转换。 // THIS IS GENERATED CODE //! Module with some const-generics-friendly definitions, to help bridge the gap //! between those and typenum types. //! //! - It requires the const-generics crate feature to be…...
并发学习之synchronized,JVM内存图,线程基础知识
文章目录 Java内存图内存图区域介绍执行流程 进程和线程概念解释线程的6种状态简述等待队列和同步队列(阻塞队列)线程之间是独立的 synchronized静态方法非静态方法代码块 知识总结: 方法区存储类信息正在执行的程序叫进程,进程会…...
使用Docker部署Nacos
sudo systemctl start docker sudo systemctl enable docker docker --version 步骤 2: 拉取 Nacos Docker 镜像 拉取 Nacos 镜像: 你可以从 Docker Hub 上拉取官方的 Nacos 镜像,使用以下命令: docker pull nacos/nacos-server 这会从 …...
如何 naive UI n-data-table 改变行移动光标背景色
默认是light 灰,想换个显眼包色,折腾半天,可以了。 无废话上代码: <template><n-data-tablesize"small":columns"columns":data"sortedDataList":bordered"true":row-key"…...
Maven 插件扩展点与自定义生命周期
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
Redis的发布订阅模型是什么,有哪些缺点?
Redis 发布订阅模型概述 Redis 发布订阅(Pub/Sub)是一种消息广播模式,核心角色包括: 发布者(Publisher):向指定频道(Channel)发送消息。频道(Channel&#…...
【EDA软件】【联合Modelsim仿真使用方法】
背景 业界EDA工具仿真功能是必备的,例如Vivado自带仿真工具,且无需联合外部仿真工具,例如MoodelSim。 FUXI工具仿真功能需要联合Modelsim,才能实现仿真功能。 方法一:FUXI联合ModelSim 1 添加testbench文件 新建to…...
C语言_动态内存管理
1. 为什么存在动态内存分配 ? 当前,我们掌握的内存开辟方式有: int val22;// 在栈空间上开辟四个字节 char arr[10]{0};// 在栈空间上开辟10个字节的连续空间而上述的开辟空间的方式有两个特点: 空间开辟大小示固定的数组在申明的时候&am…...
使用Langfuse和RAGAS,搭建高可靠RAG应用
大家好,在人工智能领域,RAG系统融合了检索方法与生成式AI模型,相比纯大语言模型,提升了准确性、减少幻觉且更具可审计性。不过,在实际应用中,当建好RAG系统投入使用时,如何判断接收信息是否正确…...
MySQL 数据库优化:ShardingSphere 原理及实践
在高并发、大数据量的业务场景下,MySQL 作为关系型数据库的核心存储引擎,其性能和扩展性面临严峻挑战。ShardingSphere 作为 Apache 顶级开源项目,提供了分布式数据库解决方案,通过分库分表、读写分离、弹性迁移等能力,帮助开发者实现 MySQL 的水平扩展与性能优化。 本文…...
【Redis】零碎知识点(易忘 / 易错)总结回顾
一、Redis 是一种基于键值对(key-value)的 NoSQL 数据库 二、Redis 会将所有数据都存放在内存中,所以它的读写性能非常惊人 Redis 还可以将内存的数据利用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障时…...
谷歌浏览器(Google Chrome)136.0.7103.93便携增强版|Win中文|安装教程
软件下载 【名称】:谷歌浏览器(Google Chrome)136.0.7103.93 【大小】:170M 【语言】:简体中文 【安装环境】:Win10/Win11 【夸克网盘下载链接】(务必手机注册): h…...
【滑动窗口】LeetCode 209题解 | 长度最小的子数组
长度最小的子数组 前言:滑动窗口一、题目链接二、题目三、算法原理解法一:暴力枚举解法二:利用单调性,用滑动窗口解决问题那么怎么用滑动窗口解决问题?分析滑动窗口的时间复杂度 四、编写代码 前言:滑动窗口…...
WebXR教学 07 项目5 贪吃蛇小游戏
WebXR教学 07 项目5 贪吃蛇小游戏 index.html <!DOCTYPE html> <html> <head><title>3D贪吃蛇小游戏</title><style>body { margin: 0; }canvas { display: block; }#score {position: absolute;top: 20px;left: 20px;color: white;font-…...
2.1.3
# Load the data file_path finance数据集.csv data pd.__________(file_path) --- data pd.read_csv(file_path) # 识别数值列用于箱线图 numeric_cols data.select_dtypes(include[float64, int64]).__________ --- numeric_cols data.select_dtypes(include[flo…...
StreamCap v0.0.1 直播录制工具 支持批量录制和直播监控
—————【下 载 地 址】——————— 【本章下载一】:https://drive.uc.cn/s/2fa520a8880d4 【本章下载二】:https://pan.xunlei.com/s/VOQDt_3v0DYPxrql5y2zxgO1A1?pwd2kqi# 【百款黑科技】:https://ucnygalh6wle.feishu.cn/wiki/…...