后端
11、ArrayList和linkedList的区别
ArrayList和linkedList的区别
Array(数组)是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的。
Array获取数据的时间复杂度是O(1),但是要删除数据却是开销很大,因为这需要重排数组中的所有数据, (因为删除数据以后, 需要把后面所有的数据前移).
缺点: 数组初始化必须指定初始化的长度, 否则报错.
例如:
List—是一个有序
301. 【操作系统】存储管理(二)
1. 分页原理
将一个进程的地址空间划分成若干个大小相等的区域,称为页。响应地,将主存空间划分成语页相同大小的若干个物理块,称为块或页框。在为进程分配主存时,将进程中若干页分别装入多个不相邻接的块中。
2. 页表
当进程的多个页面离散地分配到主存的多个物理块时,系统应能保证在主存中找到进程要访问的页面所对应的物理块。为此,系统为每个进程建立了一张页面映射表,简称页表(如下图所示)。每个页表中占一个
前端工程化:保姆级教学 Jenkins 部署前端项目
DevOps
提到 Jenkins,想到的第一个概念就是 CI/CD 在这之前应该再了解一个概念。
DevOps Development 和 Operations 的组合,是一种方法论,并不特指某种技术或者工具。DevOps 是一种重视 Dev 开发人员和 Ops 运维人员之间沟通、协作的流程。通过自动化的软件交付,使软件的构建,测试,发布更加的快捷、稳定、可靠。
CI
CI 的英文
Spring Boot + Sentinel + Redisson 集成
由于项目中需要使用spring boot、redis、redisson,现将自己的配置记录下。
软件版本
spring-boot-starter-parent 2.3.4.RELEASE
spring-boot-starter-web 2.3.4.RELEASE
spring-boot-starter-data-redis 2.3.4.RELEASE
redisson-spring-boot-st
【5分钟背八股】击穿、穿透、雪崩、预热解决方案?
缓存穿透
缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。
解决方案
有很多种方法可以有效地解决缓存穿透问题,最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足
1802. 有界数组中指定下标处的最大值
插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
坚持不懈,越努力越幸运,大家一起学习鸭~~~
题目:
给你三个正整数 n、index 和 maxSum 。你需要构造一个同时满足下述所有条件的数组 nums(下标 从 0 开始 计数):
nums.length == n
nums[i] 是 正整数 ,其中 0 <= i < n
RabbitMQ-消息堆积&高可用
前置文章:
RabbitMQ-消息可靠性&延迟消息
零、本文纲要
一、MQ常见问题
二、消息堆积-惰性队列
1、消息堆积问题
2、解决消息堆积方法
3、惰性队列
三、高可用-MQ集群
1、集群分类
2、普通集群
3、镜像集群
4、冲裁队列
一、MQ常见问题
① 消息可靠性
确保发送的消息至少被消费一次;
② 延迟消息
实现消息的延迟投递;
③ 消息堆积
处理消息无法及时消费的问
起云脚本-autojs之for循环如何正确使用
for循环语句
for循环主要用于把某些代码循环若干次,通常跟计数有关
for (初始化变量;条件表达式;操作表达式) {
//循环体
} //条件表达式为结束for循环的条件
for循环案例
for(var i = 0;i<10;i++){
log(i)
} //输出结果是 0 - 9
//案例二 ,双层for循环
for (var i = 1; i <= 3; i++)