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

Java后端程序员学习前端之JavaScript

1.什么是JavaScript

1.1.概述

JavaScript是一门世界上最流行的脚本语言javaScript
一个合格的后端人员,必须要精通JavaScript

1.2.历史

JavaScript的起源故事-CSDN博客

2.快速入门

2.1.引入JavaScript

1.内部标签

    <script>//.......</script> -->

2.外部引入

    <!-- 外部引入 --><!-- 注意:script标签必须成对出现 --><script src="js/rm.js"></script>

测试代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!-- 在script标签中写,JavaScript代码<script>alert("hello world");</script> --><!-- 外部引入 --><!-- 注意:script标签必须成对出现 --><script src="js/rm.js"></script>
</head>
<body>  <!-- 这里也可以存放 -->
</body>
</html>

2.2.基本语法入门

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!-- JavaScript严格区分大小写 --><script>// 1.定义变量 变量类型 变量名 = 变量值var score = 71;// 2.条件控制if(score>60 && score<70){alert("60-70")}else if(score>70 && score<80){alert("70-80")}else{alert("other")}// console.log(score) 在浏览器控制台打印变量 System.out.println();</script>
</head>
<body></body>
</html>

浏览器必备调试须知:

2.3.数据类型

数值,文本,图形,音频,视频.
number
js不区分小数和整数,Number

字符串

'abc' "abc"

布尔值

true false

逻辑运算

比较运算符 !!!重要

这是一个JS的缺陷,坚持不要使用==比较

须知:

  • NaN===NaN,这个与所有的数值都不相等,包括自己
  • 只能通过 isNaN(NaN) 来判断这个数是否是 NaN

浮点数问题

尽量避免使用浮点数进行运算,存在精度问题!

null 和 undefined

  • null 空
  • undefined 未定义

数组

Java的数值必须是相同类型的对象~,JS中不需要这样!

取数组下标:如果越界了,就会

对象

对象是大括号,数组是中括号~
每个属性之间使用逗号隔开,最后一个不需要添加

取对象的值

2.4严格检查模式

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><!-- 前提:ide需要设置ES6语法'use strict'; 严格检查模式,预防JavaScript的随意性导致产生一些问题必须卸载JavaScript的第一行!局部变量建议都使用let 去定义--><script>'use strict'// 全局变量let i = 1;// ES6 let</script>
</body>
</html>

3.数据类型

3.1.字符串

1、正常字符串我们使用 单引号,或者双引号包裹
2、注意转义字符\

3、多行字符串编写

4.模板字符串       

5.字符串长度

6.字符串的可变性,不可变

7.大小写转换

8.substring

3.2.数组

Array可以包含任意的数据类型

1.长度

注意:加入给 arr.length 赋值,数组大小就会发生变化~,如果赋值过小,元素就会丢失

2、indexOf,通过元素获得下标索引

字符串的“1"和数字 1是不同的

3、slice() 截取Array的一部分,返回一个新数组,类似于String中的 substring

4、push(),pop()尾部

5、unshift(),shift()头部

6、排序 sort()

7、元素反转 reverse()

8、concat()

注意:concat()并没有修改数组,只是会返回一个新的数组

9、连接符 join
打印拼接数组,使用特定的字符串连接

10、多维数组

数组:存储数据(如何存,如和取,方法都可以自己实现!)

3.3.对象

若干个键值对

Js中对象, {..} 表示一个对象,键值对描述属性 xxxx:xxxx,多个属性之间使用逗号隔开,最后一个属性不加逗号!

JavaScript中的所有的键都是字符串,值是任意对象!
1、对象赋值

2、使用一个不存在的对象属性,不会报错!undefined

3、动态的删减属性,通过 delete 删除对象的属性

4、动态的添加,直接给新的属性添加值即可

5、判断属性值是否在这个对象中!xxx in xxx!

6、判断一个属性是否是这个对象自身拥有的 hasOwnProperty()

3.4.流程控制

if判断

while循环,避免程序死循环

for循环

forEach循环

5.1引入

for...in

3.5.Map和Set

ES6的新特性

Map:

Set:无序不重复的集合

3.6.iterator

遍历数组

遍历map

遍历set

4.函数

4.1.定义函数

定义方式一、

绝对值函数

一旦执行到 return 代表函数结束,返回结果!

如果没有执行 return ,函数执行完也会返回结果,结果就是 undefined

定义方式二、

function(x){…}这是一个匿名函数。但是可以把结果赋值给 abs ,通过abs 就可以调用函数!
方式一和方式二等价!

参数问题:javaScript 可以传任意个参数,也可以不传递参数~

参数进来是否存在的问题?
假设不存在参数,如果规避?

arguments

arguments是一个JS免费赠送的关键字,
代表,传递进来的所有的参数,是一个数组!

问题: arguments 包含所有的参数,我们有时候想使用多余的参数来进行附加操作。需要排除已有参数~

rest

以前:

ES6 引入的新特性,获取除了已经定义的参数之外的所有参数~

rest 参数只能写在最后面,必须用…. 标识。

4.2.变量的作用域

在javascript中,var 定义变量实际是有作用域的。

假设在函数体中声明,则在函数体外不可以使用~(非要想实现的话,后面可以研究一下闭包)

如果两个函数使用了相同的变量名,只要在函数内部,就不冲突

内部函数可以访问外部函数的成员,反之则不行

假设,内部函数变量和外部函数的变量,重名!

假设在JavaScript 中 函数査找变量从自身函数开始~,由“内”向“外"查找,假设外部存在这个同名的函数变量,则内部函数会屏蔽外部函数的变量。

提升变量的作用域

结果:xundefined
说明;js 执行引擎,自动提升了y的声明,但是不会提升变量y的赋值"

这个是在JavaScript建立之初就存在的特性。养成规范: 所有的变量定义都放在函数的头部,不要乱放,便于代码维护;

全局函数

全局对象 window

alert() 这个函数本身也是一个window变量;

Javascript 实际上只有一个全局作用域,任何变量(函数也可以视为变量),假设没有在函数作用

范围内找到,就会向外查找,如果在全局作用域都没有找到,报错RefrenceError

规范

由于我们所有的全局变量都会绑定到我们的 window 上。如果不同的is 文件,使用了相同的全局变量,冲突~>如果能够减少冲突?

把自己的代码全部放入自己定义的唯一空间名字中,降低全局命名冲突的问题
jQuery

局部作用域 let

ES6 let 关键字,解决局部作用域冲突问题!

建议大家都是用let去定义局部作用域的变量;

常量const

在ES6 之前,怎么定义常量:只有用全部大写字母命名的变量就是常量;建议不要修改这样的值

在ES6 引入了常量关键字const

4.3.方法

定义方法

方法就是把函数放在对象的里面,对象只有两个东西: 属性和方法

        var zhangrun = {name : "张润",birth : 2000,// 方法age : function(){// 今年 - 出生的年var now = new Date().getFullYear();return now - this.birth}// 属性zhangrun.name}// 方法,一定要带()zhangrun.age()

this.代表什么? 拆开上面的代码看看~

    <script>function getAge() {// 今年 - 出生的年var now = new Date().getFullYear();return now - this.birth}var zhangrun = {name: "张润",birth: 2000,// 方法age: getAge}// zhangrun.age() ok// getAge() NAN</script>

this是无法指向的,是默认指向调用它的那个对象

apply

在js 中可以控制 this 指向!

        function getAge() {// 今年 - 出生的年var now = new Date().getFullYear();return now - this.birth}var zhangrun = {name: "张润",birth: 2000,// 方法age: getAge}// zhangrun.age() ok// getAge() nogetAge.apply(zhangrun , [])

5.内部对象

标准对象

5.1.Date

基本使用

        var now = new Date(); //当前时间 年月日 时分秒now.getFullYear(); // 年now.getMonth(); // 月now.getDate(); // 日now.getDay(); // 星期几now.getHours(); // 时now.getMinutes(); // 分now.getSeconds(); // 秒now.getTime(); // 时间戳 全世界统一 1970 1.1 00:00:00console.log(new Date(now.getTime())) // 时间戳转为时间

转换

5.2.JSON

json是什么

早期,所有数据传输习惯使用 XML 文件!

  • JSON(javaScript Object Notation,js 对象简谱) 是一种轻量级的数据交换格式。
  • 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
  • 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率

在]avaScript 一切皆为对象、任何js 支持的类型都可以用JSON来表示;number,string...

格式:

  • 对象都用 {}
  • 数组都用 []
  • 所有的键值对 都是用 key:value

JSON字符串 和JS 对象的转化

        var user = {name:"zhangrun",age : 20,gender : "女"}// 对象转化为JSON字符串var jsonUser = JSON.stringify(user)// json 字符串转化为对象 参数为json字符串var obj = JSON.parse(jsonUser)

很多人搞不清楚,JSON 和JS 对象的区别

5.3.Ajax

  • 原生的js写法 xhr 异步请求
  • jQuey 封装好的 方法 $("#name").ajax("")
  • axios 请求

6.面向对象编程

6.1.什么是面向对象

javascript、Java、c#。。。面向对象;javascript有些区别!

  • 类:模板
  • ·对象:具体的实例

在JavaScript这个需要大家换一下思维方式!
原型:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=\, initial-scale=1.0"><title>Document</title><script>var Student = {name : "zhangrun",age: 20,run : function(){console.log(this.name + ".....run")}}var zhangrun = {name : "张润"}// 张润的原型是Studentzhangrun.__proto__ = Student</script>
</head>
<body></body>
</html>

class 继承
class关键字,是在ES6引入的
1、定义一个类,属性,方法

        // 定义一个学生类class Student{constructor(name){this.name = name}hello(){alert("hello")}}var zhangrun = new Student("zhangrun")zhangrun.hello()zhangrun.name

2、继承

        // 定义一个学生类class Student{constructor(name){this.name = name}hello(){alert("hello")}}class pupil extends Student{constructor(name,grade){super(name)this.grade = grade}myGrade(){alert("我是一名小学生")}}var zhangrun = new Student("zhangrun")var xiaonai = new pupil("xiaonai",1)

7、操作BOM对象(重点)

浏览器介绍
JavaScript 和 浏览器关系?
JavaScript 诞生就是为了能够让他在浏览器中运行!
BOM:浏览器对象模型

  • lE 6~11
  • Chrome
  • Safari
  • FireFox

三方

  • QQ浏览器
  • 360浏览器

window

window 代表 浏览器窗口

Navigator
Navigator,封装了浏览器的信息

大多数时候,我们不会使用navigator对象,因为会被人为修改!
不建议使用这些属性来判断和编写代码

screen
代表屏幕尺寸

location(重要)
location 代表当前页面的URL信息

document
document 代表当前的页面,HTML DOM文档树

获取具体的文档树节点

获取cookie

劫持cookie原理

服务器端可以设置 cookie:httpOnly

history

history代表浏览器的历史记录

8、操作DOM对象(重点)

核心
浏览器网页就是一个Dom 树形结构!

  • 更新:更新Dom节点
  • 遍历dom节点:得到Dom节点
  • 删除:删除一个Dom节点
  • 添加:添加一个新的节点

要操作一个Dom节点,就必须要先获得这个Dom节点

获得dom节点

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>// 对应css选择器var h1 = document.getElementsByTagName("h1");var p1 = document.getElementById("p1");var p2 = document.getElementsByClassName("p2");var father = document.getElementById("father");var childrends = father.children; // 获得父节点下的所有子节点// father.firstChild// father.lastChild</script>
</head>
<body><div id="father"><h1>标题一</h1><p id="p1">p1</p><p class="p2">p2</p></div>
</body>
</html>

这是原生代码,之后我们尽量都是用jQuery();

更新节点

  • id1.innerText='456‘修改文本的值
  • id1.innerHTML='<strong>123</strong>'可以解析HTML文本标签

操作js

删除节点

删除节点的步骤: 先获取父节点,在通过父节点删除自己

注意: 删除多个节点的时候,children 是在时刻变化的,删除节点的时候一定要注意!

插入节点

我们获得了某个Dom节点,假设这个dom节点是空的,我们通过innerHTML 就可以增加一个元素了,但是这个DOM 节点已经存在元素了,我们就不能这么干了!会产生覆盖
追加

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head>
<body><p id="js">JavaScript</p><div id="list"><p id="se">JavaSE</p><p id="ee">JavaEE</p><p id="me">JavaME</p></div><script>var js = document.getElementById("js");var list = document.getElementById("list");list.appendChild(js); // 追加到后面</script>
</body>
</html>

效果

创建一个新标签,实现插入

9、操作表单(验证)

表单是什么 form DOM 树

  • 文本框 text
  • 下拉框 <select>
  • 单选框 radio
  • 多选框 checkbox
  • 隐藏域 hidden
  • 密码框 password
  • .......

表单的目的:提交信息

需要提交的信息

提交表单。md5 加密密码,表单优化

10、JQuery

jQuery库,里面存在大量的avascript函数
获取jQuery

选择器

相关文章:

Java后端程序员学习前端之JavaScript

1.什么是JavaScript 1.1.概述 JavaScript是一门世界上最流行的脚本语言javaScript 一个合格的后端人员&#xff0c;必须要精通JavaScript 1.2.历史 JavaScript的起源故事-CSDN博客 2.快速入门 2.1.引入JavaScript 1.内部标签 <script>//.......</script> --…...

redis多路复用IO模型 以及 6.0引入的多线程模型

redis为什么选择单线程 采用多线程的话&#xff0c;会出现上下文切换的开销采用多线程&#xff0c;会带来共享资源的竞争控制&#xff0c;比如多个线程同时访问同一个资源&#xff08;键值&#xff09;时&#xff0c;需要额外的手段来保障共享资源的正确性&#xff0c;会带来额…...

101alpha_第6个

第6个alpha (-1 * correlation(open, volume, 10)) 这个就是看这两个相似性。10天之内的 如果结果为正且数值较大&#xff0c;投资者可能会认为在开盘价上涨时成交量萎缩&#xff0c;市场上涨动力不足&#xff0c;可能是卖出信号&#xff1b;反之&#xff0c;开盘价下跌时成交…...

crawl4ai能替代scrapy等传统爬虫框架吗?

传统爬虫框架就像拿着渔网在数字海洋中捕鱼——虽然能捞到东西&#xff0c;但面对现代网站的复杂性时常常"漏网之鱼"满天飞。以Scrapy为代表的工具存在三大致命短板&#xff1a;首先是JavaScript盲区&#xff0c;对动态渲染内容束手无策&#xff0c;就像试图用收音机…...

Sui Basecamp 2025 全栈出击

“我们不仅仅是在构建一个 L1&#xff0c;我们是在重建互联网。” — — Mysten Labs 首席产品官 Adeniyi Abiodun 本届 Sui Basecamp 汇聚了 Web3 领域的建设者、合作伙伴和思想领袖&#xff0c;为期两天&#xff0c;不仅展示了 Sui 的未来&#xff0c;也展现了去中心化互联网…...

计算机体系架构-----设计模式:状态模式(从程序员加班问题切入)

文章目录 1.梦开始的地方2.代码1.0版本3.代码2.0版本4.代码3.0版本5.梦结束的地方 最近在学习这个专业课里面的体系结构这门课程&#xff0c;作为专业里面的一门基础课&#xff0c;这个课程里面主要讲解的就是软件的设计思想&#xff0c;一些历程之类的&#xff0c;包括了面向对…...

【C/C++】RPC与线程间通信:高效设计的关键选择

文章目录 RPC与线程间通信&#xff1a;高效设计的关键选择1 RPC 的核心用途2 线程间通信的常规方法3 RPC 用于线程间通信的潜在意义4 主要缺点与限制4.1 缺点列表4.2 展开 5 替代方案6 结论 RPC与线程间通信&#xff1a;高效设计的关键选择 在C或分布式系统设计中&#xff0c;…...

数据结构之串

一、串的定义与基本概念 1. 串的定义 定义&#xff1a;串是由零个或多个字符组成的有限序列&#xff0c;记作 s"a1​a2​…an​"&#xff0c;例如 "data structure"、"123" 等。 空串&#xff1a;无任何字符&#xff0c;长度为 0&#xff0c;…...

基于腾讯云MCP广场的AI自动化实践:爬取小红书热门话题

基于腾讯云MCP广场的AI自动化实践&#xff1a;爬取小红书热门话题 我正在参加Trae「超级体验官」创意实践征文&#xff0c;本文所使用的 Trae 免费下载链接&#xff1a;www.trae.com.cn/?utm_source… &#x1f50e; 背景 在人工智能快速发展的时代&#xff0c;AI技术不仅重…...

AI领域的MCP(Model-Centric Paradigm)

1. 什么是MCP&#xff08;Model-Centric Paradigm&#xff09;&#xff1f; MCP&#xff08;Model-Centric Paradigm&#xff09;是人工智能开发中的一种核心理念&#xff0c;强调以模型的优化与改进作为主要驱动因素来提升AI系统的表现。在MCP模式下&#xff0c;开发者专注于…...

裸辞8年前端的面试笔记——JavaScript篇(一)

裸辞后的第二个月开始准备找工作&#xff0c;今天是第三天目前还没有面试&#xff0c;现在的行情是一言难尽&#xff0c;都在疯狂的压价。 下边是今天复习的个人笔记 一、事件循环 JavaScript 的事件循环&#xff08;Event Loop&#xff09;是其实现异步编程的关键机制。 从…...

力扣刷题Day 41:除自身以外数组的乘积(238)

1.题目描述 2.思路 方法1&#xff1a;搞一个数组存放各元素之前所有数的乘积&#xff08;头为1&#xff09;&#xff0c;再搞一个数组存放各元素之后所有数的乘积&#xff08;尾为1&#xff09;。 方法2&#xff1a;上面的方法是很好理解的&#xff0c;在此基础上应该如何优化…...

金仓数据库征文-金仓KES数据同步优化实践:逻辑解码与增量同步

目录 一.同步场景与方案选型 二.同步环境配置 1.前置条件验证 2.逻辑解码配置 三.同步实施与问题排查 1.结构映射规则 2.增量数据捕获 3.数据一致性校验 四.性能调优实践 1.同步线程优化 2.批量提交优化 3.资源监控指标 五.典型场景解决方案 1.双向同步冲突处理 …...

【前端基础】9、CSS的动态伪类(hover、visited、hover、active、focus)【注:本文只有几个粗略说明】

一、什么是伪类 选择器的一种&#xff0c;用于选择处于特定状态的元素。 最常见的现象&#xff1a;鼠标放在某些文字上面&#xff0c;文字就会加上颜色。 鼠标没放上去之前&#xff1a; 鼠标放上去之后&#xff1a; 二、动态伪类 图片来源&#xff08;链接文章也有其他伪…...

企业开发平台大变革:AI 代理 + 平台工程重构数字化转型路径

在企业数字化转型的浪潮中&#xff0c;开发平台正经历着前所未有的技术革命。从 AST&#xff08;抽象语法树&#xff09;到 AI 驱动的智能开发&#xff0c;从微服务架构到信创适配&#xff0c;这场变革不仅重塑了软件开发的底层逻辑&#xff0c;更催生了全新的生产力范式。本文…...

ZooKeeper工作机制与应用场景

目录 1.1、概述1.2、选举机制1.2.1、选举触发条件1.2.2、选举规则1.2.3、选举过程详解 1.3、数据同步机制1.3.1、正常同步1.3.2、宕机同步 1.4、客户端常用命令1.5、应用场景1.5.1、配置管理1.5.2、命令服务1.5.3、分布式锁服务1.5.4、集群管理1.5.5、分布式ID1.5.6、分布式协调…...

VR制作软件用途(VR制作软件概述)

虚拟现实&#xff08;VR&#xff09;制作软件作为现代科技的瑰宝&#xff0c;正以独特的魅力重塑各行各业。 通过构建三维虚拟环境&#xff0c;这些软件提供了前所未有的沉浸式体验&#xff0c;还推动了技术革新与产业升级。本文将探讨VR制作软件的主要用途&#xff0c;并重点…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.1 业务场景与数据准备

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 9.1 业务场景与数据准备9.1.1 业务场景描述核心业务目标业务挑战 9.1.2 数据来源与获取数据源构成数据获取方案 9.1.3 数据结构与字段说明核心数据表设计1. 订单事实表&…...

PyTorch 入门与核心概念详解:从基础到实战问题解决

PyTorch 入门与核心概念详解&#xff1a;从基础到实战问题解决 前言 用PyTorch 编写 Transformer 模型时遇到了多个错误&#xff0c;包括维度不匹配、NaN 损失、注意力权重未记录以及 OpenMP 库初始化等问题。 本文基于以上&#xff0c;对 PyTorch 的基本解释&#xff0c;并对…...

【办公类-99-05】20250508 D刊物JPG合并PDF便于打印

背景需求 委员让我打印2024年2025年4月的D刊杂志&#xff0c;A4彩打&#xff0c;单面。 有很多JPG&#xff0c;一个个JPG图片打开&#xff0c;实在太麻烦了。 我需要把多个jpg图片合并成成为一个PDF&#xff0c;按顺序排列打印。 deepseek写Python代码 代码展示 D刊jpg图片合…...

【C++】手搓一个STL风格的string容器

C string类的解析式高效实现 GitHub地址 有梦想的电信狗 1. 引言&#xff1a;字符串处理的复杂性 ​ 在C标准库中&#xff0c;string类作为最常用的容器之一&#xff0c;其内部实现复杂度远超表面认知。本文将通过一个简易仿照STL的string类的完整实现&#xff0c;揭示其设…...

无实体对话式社交机器人 拟人化印象形成机制:基于多模态交互与文化适配的拓展研究

《如何感知AI对话者:无实体对话式社交机器人拟人化对其印象形成效果影响机制的实验研究》解析 一、研究背景与核心问题 (一)技术背景与研究动机 随着生成式AI技术发展,以ChatGPT、文心一言为代表的无实体对话式社交机器人兴起,用户对其高度拟人化特征有显著需求,如扮演…...

存储器:DDR和独立显卡的GDDR有什么区别?

本文来简要对比DDR&#xff08;Double Data Rate SDRAM&#xff09;和GDDR&#xff08;Graphics Double Data Rate SDRAM&#xff09;的区别&#xff0c;重点说明它们在设计、性能和应用上的差异&#xff1a; 1. 设计目标与架构 DDR&#xff1a;通用型DRAM&#xff0c;设计为…...

viewDesign里的table内嵌套select动态添加表格行绑定内容丢失

问题 描述 viewDesign里的table内嵌套select&#xff0c;表格的行数是手动点击按钮添加的&#xff0c;添加第一行选择select的内容能正常展示&#xff0c;添加第二行第一行的select的内容消失 代码 <FormItem label"内饰颜色"><Tableclass"mt_10&q…...

vue v-html无法解析<

vue v-html无法解析字符串的小于号 方法一&#xff1a;可以替换成转义符 (实际还是会报错) let str 12345<445667 str.replaceAll(<, <)方法二&#xff1a;可以替换成中文小于号 let str 12345<445667 str.replaceAll(<, &#xff1c;)...

COLT_CMDB_linux_userInfo_20250508.sh修复历史脚本输出指标信息中userName与输出信息不一致问题

#!/bin/bash #IT_BEGIN #IT_TYPE3 #IT SYSTEM_LINUX_AGENTUSERDISCOVER|discovery.user[disc] #原型指标 #IT_RULE SYSTEM_LINUX_AGENTUSERGROUPID|groupId[{#USERNAME}] #IT_RULE SYSTEM_LINUX_AGENTUSERHOME|userHome[{#USERNAME}] #IT_RULE SYSTEM_LINUX_AGENTUSERNAME|user…...

A. Row GCD(gcd的基本性质)

Problem - 1458A - Codeforces 思路&#xff1a; 首先得知道gcd的两个基本性质&#xff1a; (1) gcd(a,b)gcd(a,|b-a|) (2) gcd(a,b,c)gcd(a,gcd(b,c)) 结合题目所给的a1bj&#xff0c;a2bj...... anbj 根据第一条性质得到&#xff1a; gcd(a1bj&#xff0c;a2bj)gcd(…...

k8s术语之Horizontal Pod Autoscaling

应用的资源使用率通常都有高峰和低谷的时候&#xff0c;如何削峰填谷&#xff0c;提高整体的整体资源利用率&#xff0c;让service中的Pod个数自动调整呢&#xff1f;Horizontal Pod Autoscaling:使pod水平自动缩放。这个Object也是最能体现kubernetes之于传统运维价值的地方&a…...

函数级重构:如何写出高可读性的方法?

1. 引言:为什么方法级别的重构如此重要? 在软件开发中,方法(函数)是程序逻辑的基本单元。一个高质量的方法不仅决定了程序是否能正常运行,更直接影响到: 代码的可读性:能否让其他开发者快速理解可维护性:未来修改是否容易出错可测试性:是否便于编写单元测试协作效率…...

手撕基于AMQP协议的简易消息队列-8(单元测试的编写)

在MQTest中编写模块的单元测试 在MQTest中编写makefile文件来编译客户端模块 all:Test_FileHelper Test_Exchange Test_Queue Test_Binding Test_Message Test_VirtualHost Test_Route Test_Consumer Test_Channel Test_Connection Test_VirtualHost:Test_VirtualHost.cpp ..…...

硬件选型:工控机的选择要素

在机器视觉应用中&#xff0c;工控机作为核心计算设备&#xff0c;承担着图像处理、数据分析和设备控制等多重任务。由于机器视觉常常在工业自动化、质量检测和精密控制中发挥重要作用&#xff0c;工控机的选型直接影响系统的性能和可靠性。 1. 应用场景与需求 机器视觉系统广…...

【芯片设计- RTL 数字逻辑设计入门 4.1 -- verilog 组合逻辑和时序逻辑延时比较】

文章目录 Overview时间线简单示意Overview 我们来详细分析下面这段 RTL Code , sbcs_sbbusy 为什么会比 sbcs_sbbusy_nx 慢一拍(晚一个时钟周期变化)。 assign sbcs_sbbusy_nx = set_sbcs_sbbusy;always @(posedge clk or negedge dmi_resetn) beginif (!dmi_resetn) begi…...

关于ubuntu下交叉编译arrch64下的gtsam报错问题,boost中boost_regex.so中连接libicui18n.so.55报错的问题

交叉编译gtsam时遇到的报错信息如下&#xff1a;gtsam需要连接boost&#xff0c; 解决办法&#xff1a; 1.重新编译boost可解决。 2.自己搞定生成一个libicui18n.so.55。 由于我们的boost是公用的&#xff0c;因此1不太可能&#xff08;我试过重新编译完boost,在编译gtsam完…...

IoT平台和AIoT平台的区别

1. 什么是AIoT平台&#xff1f; AIoT&#xff08;人工智能物联网&#xff0c;Artificial Intelligence of Things&#xff09;平台 是 人工智能&#xff08;AI&#xff09; 与 物联网&#xff08;IoT&#xff09; 深度融合的技术框架&#xff0c;通过将AI算法嵌入物联网终端或…...

iOS 模块化开发流程

iOS模块化开发是一种将大型项目拆分为独立、可复用模块的开发模式&#xff0c;能够提升代码可维护性、团队协作效率和动态交付能力。以下是iOS模块化开发的核心流程与关键要点&#xff1a; 一、模块化设计阶段 业务解耦与模块划分 横向分层&#xff1a;基础层&#xff08;网络、…...

云原生安全治理体系建设全解:挑战、框架与落地路径

📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:云原生环境下,安全治理正在被重构 在传统IT架构中,安全防护多依赖边界设备(如防火墙、WAF、堡垒机)进行集中式防护。然而,在云原生环境下,这种“边界式”安全模型正面临颠覆。 应用微服务化…...

如何在Vue-Cli中使用Element-UI和Echarts和swiper插件(低版本)

1st.Element-UI 1.1 安装 在终端输入 npm install element-ui 1.2 导入 在全局main.js中全局导入Element-UI&#xff1a; // 导入element-ui组件库 import ElementUI from element-ui; // 导入element-ui组件库的样式 import element-ui/lib/theme-chalk/index.css; // 注…...

[特殊字符]【实战教程】用大模型LLM查询Neo4j图数据库(附完整代码)

&#x1f31f; 核心要点速览 ✅ 基于LangChain框架实现LLM查询Neo4j ✅ 使用Qwen2.5模型(实测Llama3.1查不出内容) ✅ 包含完整数据准备代码实现效果演示 ✅ GitHub/Gitee源码已同步(文末获取) &#x1f6e0;️ 环境准备 1️⃣ 安装Neo4j图数据库 # Windows安装指南参考&…...

Qt获取CPU使用率及内存占用大小

Qt 获取 CPU 使用率及内存占用大小 文章目录 Qt 获取 CPU 使用率及内存占用大小一、简介二、关键函数2.1 获取当前运行程序pid2.2 通过pid获取运行时间2.3 通过pid获取内存大小 三、具体实现五、写在最后 ​ 一、简介 近期在使用软件的过程中发现一个有意思的东西。如下所示&a…...

算法解密:除自身以外数组的乘积问题详解

算法解密:除自身以外数组的乘积问题详解 一、引言 在算法的奇妙旅程中,我们时常会遇到一些看似简单却蕴含深刻智慧的问题,“除自身以外数组的乘积”就是其中之一。这个问题不仅考验我们对数组操作的熟练程度,还要求我们在特定的限制条件下(不能使用除法且时间复杂度为O(n…...

基于Kubernetes的Apache Pulsar云原生架构解析与集群部署指南(上)

#作者&#xff1a;闫乾苓 文章目录 概念和架构概述主要特点消息传递核心概念Pulsar 的消息模型Pulsar 的消息存储与分发Pulsar 的高级特性架构BrokerBookKeeperZooKeeper 概念和架构 概述 Pulsar 是一个多租户、高性能的服务器到服务器消息传递解决方案。Pulsar 最初由雅虎开…...

信创生态核心技术栈:数据库与中间件

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…...

CMU-15445(3)——PROJECT#1-BufferPoolManager-Task#1

PROJECT#1-BufferPoolManager 在完成了前面基础的PROJECT#0后&#xff0c;从本节开始才正式进入了CMU-15445的学习&#xff0c;最终目的是构建一个面向磁盘的数据库管理系统。 PROJECT#1 的主要任务是实现数据库管理系统的缓冲池管理器&#xff0c;缓冲池负责在主存缓冲区与持…...

《数据结构初阶》【链式二叉树】

《数据结构初阶》【链式二叉树】 前言&#xff1a;---------------树---------------什么是树&#xff1f;&#x1f4cc;爱心❤小贴士&#xff1a;树与非树&#xff1f;树的基本术语有哪些&#xff1f;关于节点的一些定义&#xff1a;关于树的一些定义&#xff1a;关于森林的定…...

Oracle免费认证来袭

1、Oracle Cloud Infrastructure 2025 Foundations Associate” &#x1f517; 考证地址&#xff1a;https://mylearn.oracle.com/ou/exam-unproctored/oracle-cloud-infrastructure-2025-foundations-associate-1z0-1085-25/148056/241954 2、Oracle Cloud Infrastructure 2…...

Vim 编辑器常用快捷键速查表

Vim 编辑器常用快捷键速查表 Vim 快捷键大全 **1. 基础操作****2. 光标移动****3. 编辑文本****4. 查找替换****5. 分屏操作****6. 可视化模式** **附&#xff1a;Vim 模式切换流程图** 1. 基础操作 快捷键功能说明i进入插入模式&#xff08;光标前&#xff09;a进入插入模式&…...

从父类到子类:C++ 继承的奇妙旅程(1)

前言&#xff1a; 在前文&#xff0c;小编讲述了C模板的进阶内容&#xff0c;下面我们就要结束C初阶的旅行&#xff0c;开始进入C进阶容的旅c程&#xff0c;今天旅程的第一站就是C三大特性之一——继承的旅程&#xff0c;各位扶好扶手&#xff0c;开始我们今天的C继承的奇妙旅程…...

HTML9:页面结构分析

页面结构分析 元素名描述header标题头部区域的内容&#xff08;用于页面或页面中的一块区域&#xff09;footer标记脚部区域的内容&#xff08;用于整个页面或页面的一块区域&#xff09;sectionWeb页面的一块独立区域article独立的文章内容aside相关的内容或应用&#xff08;…...

LabVIEW超声波液位计检定

在工业生产、运输和存储等环节&#xff0c;液位计的应用十分广泛&#xff0c;其中超声波液位计作为非接触式液位测量设备备受青睐。然而&#xff0c;传统立式水槽式液位计检定装置存在受建筑高度影响、量程范围受限、流程耗时长等问题&#xff0c;无法满足大量程超声波液位计的…...

maven 安装 本地 jar

命令&#xff1a; mvn install:install-file -DgroupIdnet.pingfang.application -DartifactIdjna -Dversion5.1.0 -Dpackagingjar -DfileD:\maven\repository1\jna\5.1.0\jna-5.1.0.jarmvn&#xff1a;这是Maven的执行命令。 install:install-file&#xff1a;这是Maven插件目…...