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

基础的八股

JS

this

全局:this指向window

函数:this指向window

对象:this指向调用它的

get、post的区别

1、写的地方不同:get在地址栏里 地址栏有多长就只能写多少、post在请求体里 没有上限

2、关于回退和刷新:get回退和刷新没问题 post 会弹窗-是都要重新提交表单

3、get有缓存 post没有

cookie、localstorage、sessionStorage的区别

相同点:都是用来在客户端存储数据的

不同点:

cookie:发一次请求就会携带一次,身上没有方法可以用 要是想用就得自己封装,可以设置过期时间(xss攻击了解一下)

localstorage:持久化存储、只要不手动清除  就一直在

sessionstorage:会话级别的存储 窗口关掉就没有了

localstorage、sessionstorage有一些共有的方法:setItem、getItem、removeItem、clear

深拷贝、浅拷贝的区别

深拷贝:拷贝的是真正的值 会为值开辟地址 一个改变另一个不受影响(JSON.parse(JSON.stringify()))

浅拷贝:拷贝的是地址引用 一个改变 另一个也会变(object.assign)

new都做了什么事情

1、肯定是创建一个新对象

2、把构造函数的原型赋值给新对象

3、把构造函数的this赋值给新对象

4、对return出来的东西做判断处理 如果是简单数据类型 不做处理,如果是复杂数据类型 就直接把return 里的东西返回出来 就表示 new没用啦

call、apply、bind的区别

相同点:都是来改变this指向的

不同点:

1.执行问题

call 和 apply 都是立即执行的     bind的返回值是一个函数 他需要()调用

2.传参问题:

call 、bind 的参数都是一个一个的传进去,apply的第二个参数是个数组 (都放在数组里)

原型和原型链介绍一下

因为在js中是用构造函数来创建对象的,每一个构造函数身上都有一个属性prototype 他的值是一个对象 里面包含了所有可以共享的属性啊 方法啊 这个就叫原型对象

原型链:实例化对象想用某个方法 会先从自身去找 自身没有会去原型上找 原型没有会去原型的原型上  一直找 找到object身上 它的值是个null 从他自身一直到object 连接起来 就是原型链

闭包

内层函数+外层变量(函数套函数)

优点:私有变量、私有函数

px、em、rem

px:绝对像素

em:相对于父元素

rem:相对于根元素

ajax二次封装

一些基本配置、响应拦截器、请求拦截器

数组身上的方法

push:末尾添加

pop:末尾删除

shift:头部删除

unshift:头部添加

reverse:翻转

slice:截取

splice:两个参数当删除用 三个参数当添加和替换用

字符串身上的方法

split

tocaseupper

toLowcase

includes()

startsWith()

endsWith()

对象身上的方法

js中的栈和堆有什么区别?

存储方式:

栈:

堆:

js和ts的区别

为什么!{}返回false

!遇到非布尔值 他会去做类型转换

{}做类型转换  任何非空对象在转换布尔值时都是true

undefined、null、false、0、''这几个是false

所以!{}是false

es6

新的基本类型

symbol

作用:解决命名冲突的问题(对象的属性名都是字符串 容易造成命名冲突进行覆盖)

他是一个新的数据类型 

表示独一无二的值

使用

Symbol

Symbol.for()

区别

Symbol.for()  代表如果之前有abc 代表独一无二  要是再来一个表示他们是一样的 因为在此之前已经注册过了

取值:object.getOwnProtypeSymbols(返回的是数组 但他只能拿symbol)

Reflect(可以拿到全部的值 有symbol 有不是symbol的  他也是数组)以后了解一下

Reflect.ownKeys

bigint

let、const、var的区别

相同点:都是用来声明变量的

不同:

var:全局作用域、存在变量提升(等号左边提上去)、可重复声明

let:块级作用域、不存在变量提升、不可重复声明

const:块级作用域、不存在变量提升、不可重复声明、const 声明的变量地址不可以被修改所以相当于是常量、一旦声明必须赋值

解构赋值

模版字符串

箭头函数

箭头函数和普通函数的区别:

没有自己的this 取的是上层作用域的this

没有argument

不可以被当做构造函数用(就是不能用new)

数组新增的方法

filter

foreach

map

array.from:将类数组的对象转成真正的对象

array.of:将一组值转化成数组(Array.of(3, 11, 8) // [3,11,8] )

find()

findIndex()

对象新增的方法

assign:合并

is:严格判断两个值是否相等 判断+0 -0)

keys:拿object的键名

value:拿object的值

class

module

promise 与 async await

相同点:都是用来处理异步请求的

promise:他有三种状态 padding、resolve、reject  他一旦发出 只能等返回结果 不可以干涉结果

他有一些可以用的方法resolve() reject()  .then() .catch  .finallly   .error

Promise.all() ⽅法⽤于将多个Promise 实例,包装成⼀个新的Promise 实例

const p = Promise.all([p1, p2, p3]);

async await 他其实是Generator 的语法糖  返回的就是一个promise

他两的区别就是 async await 同步代码做异步处理 起到一个阻断的作用 等返回出来结果再走后面的 promise 会出现没有返回结果就走后面的东西

原理:

generator

他是个函数 用来解决异步编程的

格式:let a = function* (){

                        yield

}

next():下一步  相当于promise中的then

WeakMap和Map

WeakMap:

weakmap的值只能是对象

不可遍历

方法不同(只有四个方法能用)

get、set、has、delete

Map:

本质上是键值对的集合  它的key可以是任意内容(数组、数值、对象)

方法

长度:size

删除:delete、clear

增:set()

查:get()

还可以遍历:

keys():返回键名的遍历器

values():返回键值的遍历器

entries():返回所有成员的遍历器

foreach():遍历map所有的成员

WeakSet和Set

WeakSet

weakset的值只能是对象

不可遍历

方法不同(只有三个方法能用)

add、has、delete

Set

是一种新的数据结构 类似于数组 它的值都是唯一的

是个构造函数 需要new Set()

方法:

长度:size

删除:delete、clear(全删)

增:add()

查:has()

需要注意的一点 set去重是做=== 加类型判断的 

还可以遍历:

keys():返回键名的遍历器

values():返回键值的遍历器

entries():返回所有成员的遍历器

foreach():遍历set所有的成员

Vue2

介绍一下生命周期

生命周期指的是组件从创建到销毁的整个过程,分别是创建、挂载、更新、销毁,他们对应了8个钩子函数

beforeCreate:创建之前、页面啥也没干呢 啥也不能干

created:创建之后、data可以用、dom不能动(如果想在这个阶段操作dom可以卸载定时器、promise、异步里)

beforeMount:挂载之前、data可以用、dom不能动(如果想在这个阶段操作dom可以卸载定时器、promise、异步里)

mounted:挂载之后 很成熟 啥都能干

beforeupdate:更新之前 数据是新的 页面是旧的

updated:更新之后 数据和页面都是新的

beforedestory:销毁之前 

destory:销毁之后(组件和绑定的东西断开连接了 不能用了)

介绍一下vue2和vue3里面的双向绑定

vue2:object.defineproperty

        他是通过把组件里data return 出来的东西赋值给object大对象,object通过object.defineproperty 劫持它的get和set,一旦发生变动 会立即通知vue执行update方法,进行dom节点的更新 从而实现双向绑定。因为他是对属性进行监听 所以它的弊端就是后续添加进来的属性 不可以被监听到($set)

vue3:proxy

        他是通过proxy劫持它的get 和set ,他监听的是整个组件大对象 后续添加进来的属性可以劫持到

data为什么要用return?

因为vue讲究的是组件的可复用性 组件每被复用一次 data就会被复制一次,写成函数是为了每复用一次组件就会返回一个新的data 让各个组件独立维护 互不影响。

如果不写成函数 那就相当于不管复用多少次 都用一个data 复用的其中一个组件的data变动就会影响别的组件。

vue组件通信

父 -> 子:props

子-> 父: 父亲传给孩子一个自定义函数,孩子$emit

兄弟:$bus (on 和emit)

vuex:集中式状态管理

vuex包含五部分:
state:用来存储数据的

action:做异步处理的

mutation:唯一一个可以改变数据状态的(只能同步 要是不是同步你就不知道这个值他是什么时候修改的)

getter:给数据做加工处理(应该是可以做异步的)

module:模块化

ref是什么

来获取dom的

computed、watch、methods的区别

computed  和 methods区别

相同点:都可以返回东西

不同点

computed 计算属性 调用一下就会打印返回的结果 但是不管调用几次 只要值不变他就只会打印一次 其他会在缓存里面拿数据

methods 没有缓存 调用几次 执行几次

watch 和 computed  的区别

相同点:都可以用来监听数据

不同点

watch:值发生变动了才会执行

computed:只要调用就会执行

vuex刷新后数据会丢失吗?怎么解决

vuex是放在运行内存中的     他只要刷新页面肯定是会重新获取数据 页面也会丢失数据

解决:

1.把数据直接保存在爱浏览器缓存里(sessionStorage、cookie、localstorage)

2.页面刷新的时候 再次请求数据 达到可以动态更新的方法

        监听浏览器的刷新事件 再刷新之前把数据保存到sessionStorage,刷新成功之后再异步的请求,如果请求到了用vuex 如果没有就去sessionStorage中拿

elementui如何做表单验证的

他有一些方法 

1、在表单中加rules属性 然后在data中写校验规则   用props连接

2、内部添加规则 页面里直接rules="[]"

3、自定义函数校验(正则表达式)

Vue3

vue3常用的响应式数据类型

ref:基础类型

reactive:复杂类型

toRef: 解构单一的值 let name = toRef(obj,'name')

toRefs:解构所有的值  let {name age} = toRefs(obj)

vue3常用的api

createApp() :创建一个应用实例 

        等同于vue2的 new Vue()   写插件封装全局组件会使用

provide/inject :依赖注入

        其实就是传值  父组件传后代

directive:自定义指令

        像后台管理系统中的按钮权限控制(一个用户拥有某些权限 但是也只能是查看和修改 不能删除)

mixin:混入(可以了解一下hooks  )

app.config.globalProperties:获取vue 这个全局对象的属性和方法

        自己封装插件的时候需要把方法插入到对象中

nextTick:可以获取到更新后的dom(等下次刷新dom的工具 他返回的是一个promise 回调函数是放在promise中的 所以是异步执行的)

computed:计算属性 有缓存

reactive、ref:做响应式的 类似于vue2中的data

watch:监听

markRaw():不能被new Proxy代理 说白了就是静态数据

defineProps():当前组件使用setup的形式,需要用defineProps接收

defineEmits:当前组件使用setup的形式,需要用defineEmits提交

slot:插槽(匿名、有名 、作用域)

如何用Vue3中setup写法 获取vue2里面的this

因为 setup() 是在解析其它组件选项之前被调用的,所以 setup() 内部的 this 的行为与其它选项中的 this 完全不同。这在和其它选项式 API 一起使用 setup() 时可能会导致混淆。

因此setup函数中不能使用this。所以Vue为了避免我们错误的使用,直接将setup函数中的this修改成了 undefined

所以如果想要在Vue3中使用this, Vue为我们提供了getCurrentInstance()方法,这个方法返回了ctx和proxy。

全局封装了某个方法 需要在某个组建中使用这个属性或者方法就这样整 去获取他

 import {getCurrentInstance} from '@vue'

let app = getCurrentInstance()

console.log(app .appContext.app.config.globalProperties.$loading)

vue3用setup写组织代码

mixin:写了一些属性、方法 可以再全局或者某个组件中使用  他是没有template

hooks:他是函数式编程  主要解决的问题是分割代码(模块功能细分 项目维护性更高)

vue2和vue3的区别

双向绑定方法不同

vue2:object.defineproperty()

vue:new proxy()

$set在vue3没有 因为new proxy()不需要

v-if v-for优先级不同了

v-for与v-if在vue2中优先级高的是v-for指令,而且不建议一起使用

vue3中v-for与v-if,只会把当前v-if当做v-for中的一个判断语句,不会相互冲突

关于写法

vue2选项是api

vue3可以是选项式也可以是setup语法糖

ref与reactive

生命周期

解构 toRef与toRefs

开放性问题

对模块化开发的理解

如何封装和重用代码?有什么考虑?

组件封装

mixin混入

好好想想吧!

描述一下最近完成的项目 以及遇到的难点

项目描述

技术实现

遇到的问题+解决

结果和收获(学会了。。。)

总的来说 哈哈哈

其他

什么是xss攻击? 怎么防止?

xss:黑客会通过在网站注入script脚本 当用户浏览网站的时候 脚本会在它的浏览器中执行 会去获取用户的信息 篡改页面

防止:

输入验证和过滤(只接受正规的输入)

HTTP-only Cookie:禁止 JavaScript 读取某些敏感 Cookie,攻击者完成 XSS 注入后也无法窃取此 Cookie

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!再看看

移动端布局的几种方式

  1. 流式布局(百分比布局)
  2. flex布局(弹性布局)
  3. Less+rem+媒体查询布局(实际用flexible.js+rem居多)
  4. 响应式布局(利用Bootstrap)
  5. 混合布局,可以根据不同的组件需求,混用不同布局方式,例如全局使用rem适配,部分盒子使用flex布局。

前端接口如何防止重复提交

可以使用token

后端传过来的token前端通过本地存储保存下来 放在http请求的请求头里 后端去判断

再看看!!

跨域

axios二次封装

基础

请求拦截器

响应拦截器

git常用的命令

移动端兼容性的问题

1、当设置样式overflow:scroll / auto ios会卡顿

        -webkit-overflow-scrolling:touch

2、在安卓环境下placeholder设置行高时会偏上

        input有placeholder 属性的时候不要设置行高

3、移动端字体小于12px时 异常显示

        应该先把整体放大一倍 然后再用transform进行缩小

4、ios下input按钮设置了disabled属性为true显示异常

        input[type=button]{ opcity:1}

5、安卓手机下取消语音输入按钮

        input::-webkit-input-speech-button{

                display:none

        }

6、ios取消input输入框在输入引文首字母默认大写

        <input autocapitalize="off"  autocorrect="off">

7、禁用ios和安卓用户选中文字

        需要添加全局样式:-webkit-user-select:none

8、禁止ios弹出各种窗口

        -webkit-touch-callout:none

9、禁止ios识别长串数字为电话

        需要添加meta属性 :<meta conten=‘telephone=no’ name='format-detection'>

10.去掉ios被触摸时产生的半透明灰色遮罩层

        -webkit-tap-heighlight-color:rgbaa(0,0,0,0)

js为什么要用事件循环

首先js是单线程的 单线程有一个阻塞的一个问题 浏览器他是通过异步来解决阻塞的问题(settimeout、网络请求)异步是放在队列里面的 异步有一个问题是 他没有优先级 所以为了更灵活一点 增加了事件循环机制

事件循环他有同步任务和异步任务  一般先同步后异步 异步任务有微任务和宏任务 先微任务后宏任务 每执行完一个宏任务 他会去看看微任务队列中有没有微任务 如果有先执行微任务再去执行下一个宏任务 

TS

什么是ts

为什么要使用ts? ts相对于js的优势是?

ts中const 和 readonly 的区别?枚举和常量枚举的区别?

ts中any类型的作用是?

ts中的 this 和js 中的this有什么差异?
ts中any、never、 unknow 、null 、undefined 和void有什么区别?

ts中interface1可以给function / array / class做声明吗?

ts可以使用string 、number、 boolean、 symbol、 object等给类型做声明吗?

ts中使用union type时有那些注意事项?

ts如何设计class的声明?

ts如何联合枚举类型的key?
ts中的type 和 interface 的区别?

ts中 ?.  、 ?? 、!  、!.  、_ 、**等符号的含义

介绍一下ts中的模块的加载机制

聊聊你对ts类型兼容性的理解

ts中的对象展开会有什么副作用吗?

类型的全局声明和局部声明

ts中有遇到什么问题吗

相关文章:

基础的八股

JS this 全局&#xff1a;this指向window 函数&#xff1a;this指向window 对象&#xff1a;this指向调用它的 get、post的区别 1、写的地方不同&#xff1a;get在地址栏里 地址栏有多长就只能写多少、post在请求体里 没有上限 2、关于回退和刷新&#xff1a;get回退和刷新没问…...

使用Python从头开始创建PowerPoint演示文稿

目录 一、环境搭建与基础知识 1.1 环境搭建 1.2 基础知识 二、创建演示文稿对象 三、添加幻灯片 3.1 选择幻灯片布局 3.2 设置幻灯片内容 3.2.1 设置标题和副标题 3.2.2 添加文本内容 3.2.3 插入图片 3.2.4 插入图表 四、高级应用&#xff1a;批量生成演示文稿 4.…...

【C++ Primer Plus习题】15.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include "sales.h"…...

Pipeline Scheduling(UVA 690)

网址如下&#xff1a; Pipeline Scheduling - UVA 690 - Virtual Judge (vjudge.net) &#xff08;第三方网站&#xff09; 噫&#xff0c;好&#xff01;我中了&#xff01; 这题还是有点折磨的&#xff0c;刚开始我只会递归下一个程序运行的时间&#xff08;范围在1~n&…...

萤石举办2024清洁机器人新品发布会 多维智能再造行业标杆

导言&#xff1a;作为智慧生活守护者&#xff0c;萤石今日发布了两款清洁机器人&#xff0c;AI扫拖机器人RS20 Pro Ultra 和AI洗地机器人RX30 Max &#xff0c;标志着萤石在智能清洁领域的全新突破。RS20 Pro Ultra基于CutFree 2.0内切割滚刷专利&#xff0c;有效解决毛发缠绕难…...

企业级Ansible自动化运维项目案例:实战与技巧

在企业级的IT运维中&#xff0c;自动化已成为提高效率、减少人为错误和保证服务一致性的关键手段。Ansible作为一种简单但功能强大的自动化工具&#xff0c;广泛应用于配置管理、应用程序部署、任务自动化和IT编排。本文将通过一个企业级的Ansible自动化运维项目案例&#xff0…...

JavaSE-易错题集-005

1. 下面有关java object默认的基本方法&#xff0c;说法错误的是&#xff1f; A equals(Object obj) 指示某个其他对象是否与此对象“相等” B copy() 创建并返回此对象的一个副本 C wait() 导致当前的线程等待&#xff0c;直到其他线程调用此对象的 notify() 方法或 notifyA…...

决策树模型的可解释性

我们首先介绍一下一个比较简单的机器学习模型&#xff0c;其在设计之初就已经有了比较好的可 解释性&#xff0c;这个模型就是决策树模型。决策树相较于线性的模型&#xff0c;它是更强大的模型。而决策树 的另外一个好处&#xff0c;相较于深度学习它具有良好的可解释性。比如…...

2. geoserver 发布postgis数据

1. 新建工作空间 2. 新建存储空间 3. 新建图层 4. 切片图层 5. 查看发布的图层...

【渗透测试】——Brup Suite平台安装

&#x1f4d6; 前言&#xff1a;Burp Suite 是用于攻击 web 应用程序的集成平台。它包含了许多Burp工具&#xff0c;这些不同的burp工具通过协同工作&#xff0c;有效的分享信息&#xff0c;支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。 它主要用来做安全性…...

redis:全局ID生成器实现

问题&#xff1a;订单id不能设置为自增长的原因 id的规律性太明显&#xff0c; 受订单的数据量限制:若数据量过大&#xff0c;需要多张表存储&#xff0c;若自增会导致id重复 全局ID生成器&#xff1a;在分布式系统中用来生成全局唯一ID的工具 ID的组成&#xff1a; 符号位…...

jenkins工具的介绍和gitlab安装

使用方式 替代手动&#xff0c;自动化拉取、集成、构建、测试&#xff1b;是CI/CD持续集成、持续部署主流开发模式中重要工具&#xff1b;必须组件 jenkins-gitlab&#xff0c;代码公共仓库服务器&#xff08;至少6G内存&#xff09;&#xff1b;jenkins-server&#xff0c;需…...

【从0开始在CentOS 9中安装Tomcat】

从0开始在CentOS 9中安装Tomcat 1. 安装 Java&#xff08;Tomcat 需要 Java 环境&#xff09;2. 下载并安装 Tomcat3. 配置 Tomcat4. 启动 Tomcat5. 配置 Tomcat 为开机自启动6. 验证 Tomcat 运行状态7. 允许防火墙开放 8080 端口&#xff08;可选&#xff09; 要在 Linux 上安…...

学习Vue3的第五天

目录 API对比 shallowRef 与 shallowReactive 对比总结 使用场景 总结 readonly 与 shallowReadonly 对比总结 使用场景 总结 toRaw 与 markRaw 对比总结 使用场景 总结 customRef 应用场景 总结 示例&#xff1a;异步数据获取 Vue3新组件 Teleport Suspen…...

Python 类中使用 cursor.execute() 时语法错误的解决方法

在 Python 类中使用 cursor.execute() 时&#xff0c;出现语法错误&#xff08;如 SyntaxError 或 SQL 语法相关错误&#xff09;通常是因为 SQL 语句格式不正确、占位符使用不当&#xff0c;或参数传递方式不符合预期。以下是解决此类问题的常见方法和建议。 问题背景 在 Pyt…...

怎么选择靠谱AI论文生成工具?看完我的试用都会明白!

2024年上半年开始AI论文写作工具开始火了&#xff0c;层出不穷&#xff01;作为一个经常需要写论文的懒人&#xff0c;我非常好奇这些AI工具的实际效果到底怎么样&#xff1f;为了测试不同工具的实力&#xff0c;我对他们都进行了试用&#xff0c;发现了一些意想不到的结果....…...

Java 每日一刊(第3期):Hello World

文章目录 前言Hello World程序是如何执行的Hello World 里有什么本期小知识 阳光洒进窗台&#xff0c;花香伴着书香&#xff0c;静谧而温暖&#xff0c;仿佛时光停驻。 前言 这里是分享 Java 相关内容的专刊&#xff0c;每日一更。 本期将为大家带来以下内容&#xff1a; “…...

git一个项目关联多个远程仓库

一行代码就行&#xff1a; git remote set-url origin [想要关联的远程仓库地址]想要关联哪个就切换哪个 或者不用每次切换&#xff0c;集中管理&#xff1a; Git->Manage Remotes 点击“”&#xff0c;填入Name和想要关联的远程库地址 每次push时执行命令 git push [为…...

衡石分析平台使用手册-部署前准备

部署前准备​ 1.根据版本获取 k8s 部署配置文件。 安装版本部署文件组件依赖3.xk8s-yamlmetadb、engine、hengshi zookeeper4.0.xk8s-yamlmetadb、engine、hengshi、minio、zookeeper4.1.xk8s-yamlmetadb、engine、hengshi、minio、redis、flink、zookeeper4.2.xk8s-yamlmeta…...

AI大模型全栈工程师课程笔记 - RAG 检索增强生成

文章目录 \1. RAG\2. 构建流程 2.1 文档加载与切分2.2 传统检索引擎2.3 LLM接口封装2.4 构建prompt \3. 向量检索\4. 向量数据库\5. 基于向量检索的RAG\6. 进阶知识 6.1 文本分割粒度6.2 检索后再排序6.3 测试 1. RAG RAG&#xff08;Retrieval Augmented Generation&#…...

【时时三省】c语言例题----华为机试题<进制转换>

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 1&#xff0c;题目 HJ5 进制转换 描述 写出一个程序&#xff0c;接受一个十六进制的数&#xff0c;输出该数值的十进制表示。 数据范围&#xff1a;保证结果在 1≤n≤231−1 1≤n≤231−1…...

根据NVeloDocx Word模板引擎生成Word(四)

前面介绍了《E6低代码开发平台》的Word模版引擎NVeloDocx&#xff0c;实现了表单的基本字段、子表、单张图片、二维码、条形码怎么基于NVelocity脚本输出到Word文件&#xff0c;都是些比较简单且常用的需求。 本篇介绍怎么基于NVeloDocx在Word中插入图表&#xff0c;目前只支持…...

C++笔记---stack和queue

1. stack的介绍及重要接口 stack---栈&#xff0c;是一种“先进后出&#xff0c;后进先出”的数据结构。 此处的stack是STL库中定义的一个类模板&#xff0c;用于实例化出存储各种类型数据的栈。 bool empty() const;判断栈是否为空(空true/非空false)size_t size() const;返…...

springboot Rabbit MQ topic 配置文件绑定队列和交换机

Spring Boot 中如何将队列和交换机绑定&#xff08;含实例讲解&#xff09; 在使用 Spring Boot 开发高并发的秒杀系统或者其他场景时&#xff0c;RabbitMQ 是常用的消息队列中间件之一。本文将详细讲解如何在配置类中通过代码将队列与交换机绑定&#xff0c;并指定路由键来实…...

Visual Studio 2019密钥

Visual Studio 2019 Enterprise&#xff08;企业版&#xff09;&#xff1a;BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Professional&#xff08;专业版&#xff09;&#xff1a;NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y...

【三元组枚举中点】【树状数组】个人练习-Leetcode-1395. Count Number of Teams

题目链接&#xff1a;https://leetcode.cn/problems/count-number-of-teams/description/ 题目大意&#xff1a;给一个数组rating[]&#xff0c;求符合以下任一条件的三元组i, j, k的个数 rating[i] < rating[j] < rating[k]rating[i] > rating[j] > rating[k] …...

Anaconda 中遇到CondaHTTPError: HTTP 404 NOT FOUND for url的问题及解决办法

最近在跑一个开源项目遇到了以下问题&#xff0c;查了很多资料都大&#xff08;抄&#xff09;同&#xff08;来&#xff09;小&#xff08;抄&#xff09;异&#xff08;去&#xff09;的&#xff0c;解决不了根本问题&#xff0c;费了很大的劲终于得以解决&#xff0c;记录如…...

数据库系统 第51节 数据库事务管理

数据库事务管理是数据库管理系统&#xff08;DBMS&#xff09;中用于确保数据完整性和一致性的一组机制。事务是一组不可分割的操作序列&#xff0c;这些操作要么全部成功&#xff0c;要么全部失败。以下是数据库事务管理的关键组成部分的详细叙述&#xff1a; 1. 事务隔离级别…...

分解+优化+组合+对比!核心无忧!VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测

分解优化组合对比&#xff01;核心无忧&#xff01;VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测 目录 分解优化组合对比&#xff01;核心无忧&#xff01;VMD-SSA-Transformer-LSTM多变量时间序列光伏功率预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.…...

二十三种设计模式之建造者模式(类比汽车制造厂好理解一些)

目录 1. 设计模式的分类 2. 定义 3. 建造者模式通常包含以下几个角色 4. 示例代码 5. 建造者模式的主要优点 1. 设计模式的分类 创建型模式(五种)&#xff1a;工厂方法模式、单例模式、抽象工厂模式、原型模式、建造者模式。 结构型模式(七种)&#xff1a;适配器模式、代…...