- 博客(121)
- 收藏
- 关注
原创 【高频】redis快的原因
相关问题:1.为什么Redis能够如此快速地进行数据存储和检索?2.Redis作为内存数据库,其内存存储有什么优势吗?3.Redis的网络模型有何特点,如何帮助提升性能?
2024-05-29 22:11:47
1576
原创 get和post的区别,二者是幂等的吗?
所谓幂等性通俗的将就是一次请求和多次请求同一个资源产生相同的副作用。维基百科定义:幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。
2024-05-24 23:03:08
1286
原创 【高频】从输入URL到页面展示到底发生了什么?
浏览器输入美团网站,从回车到浏览器展示经历了哪些过程?http输入网页之后的流程?百度搜索页面,从点开搜索框,到显示搜索页面经历了什么?
2024-05-24 22:46:41
1193
原创 说说什么是AOP,以及AOP的具体实现场景(外卖中应用)
面向切面编程,是面向对象编程(OOP)的一种增强模式,可以将项目中与业务无关的,却为业务模块所共同调用的非核心代码封装成(比如事务管理、日志管理、权限控制等等)一个个切面,然后在运行的时候通过动态代理或者CGLib代理的方式织入到核心业务功能中。场景四: 缓存优化 (第一次调用查询数据库,将查询结果放入内存对象, 第二次调用, 直接从内存对象返回,不需要查询数据库 )【总结:AOP就是基础代码的增强,将非核心的代码抽取出来,封装成切面,进行复用】场景二: 监控方法运行时间 (监控性能)
2024-05-23 23:10:41
1293
原创 事务的ACID是什么及扁平化事务、链式事务
1.事务(Transaction)是区别于数据库文件系统的重要特性之一。事务会把数据库从一种一致状态转换为另一种一致状态。在数据库提交工作时,可以确保要么所有修改都已经保存,要么所有修改都不保存。2.InnoDB存储引擎中的事物完全符合ACID的特性。原子性(atomicity)一致性(consistency)隔离性(isolation)持久性(duration)3.事务是访问并更新数据库中各种数据项的一个程序执行单元。在事务中的操作,要么都做修改,要么都不做,这就是事物的目的。
2024-05-23 22:55:10
763
原创 缓存三问与缓存预热-如何预防缓存崩溃
缓存预热是一种在应用程序启动或缓存失效之后,主动将热点数据加载到缓存中的策略。时,如果此时有大量的用户请求,都无法在 Redis 中处理,于是全部请求都直接访问数据库,从而导致数据库的压力骤增,严重的会造成数据库宕机,从而形成一系列连锁反应,造成整个系统崩溃,这就是。,导致请求在访问缓存时,发现缓存缺失,再去访问数据库时,发现数据库中也没有要访问的数据,没办法构建缓存数据,来服务后续的请求。了,此时大量的请求访问了该热点数据,就无法从缓存中读取,直接访问数据库,数据库很容易就被高并发的请求冲垮,这就是。
2024-05-21 16:04:28
983
原创 深入了解布隆过滤器:数据筛选的利器
布隆过滤器(英语:Bloom Filter)是1970年由伯顿·霍华德·布隆(Burton Howard Bloom)提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。如果布隆过滤器判断元素在集合中存在, 不一定存在.如果布隆过滤器判断不存在, 则一定不存在.
2024-05-21 15:16:37
731
原创 十大排序算法(java实现)
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。【冒泡、插入、选择、、归并排序面试中出现概率极高】
2024-05-10 21:51:01
1011
原创 Failed to load local image resource Xx the server responded with a status of of 500 (HTTP/1.1 500)
4.比如images是图片目录,必须把它放置在和pages(系统设定的页面目录)同级的位置;如果images和项目的根目录同级,就无法加载images中的图片。【其实看似是很小的问题,因为初学就会发生各种意想不到的错误,因此细心多检查就行】3.错误写法: imgSrc: 'img\首页1.png' ,正确写法:imgSrc: '/img/首页1.png'1.直接使用../lutos.jpg 在使用相对路径时,看似没有太大问题,但是文件夹层数过多,也会报错。
2024-04-20 17:37:33
626
原创 关于如何打开IIS管理器
在进行web实验时,通过“选择”——“控制面板”——“系统和安全”——“管理工具”——“Internet信息服务(IIS)管理器”命令,无法正确找到IIS管理器。
2024-04-19 13:09:25
1958
原创 java: 警告: 源发行版 17 需要目标发行版 17,java17 无效的目标发行
注:确定springboot版本和jdk版本是否匹配。使用的是jdk8就更改 SpringBoot依赖 版本为3.x.x以下,版本,idea用2022.1以上,才有JDK 17。:启动类是,无法启动,控制台报错:java: 警告: 源发行版 17 需要目标发行版 17。注:一定要先点右下角 Appaly 再点击 OK!注:因为我本地安装的是jdk8,因此所有都调整成8,也可以直接调整成jdk17。注:一定要先Apply!
2024-04-11 23:20:30
6454
2
原创 解决“hint: the same ref. If you want to integrate the remote changes, usehint: ‘git pull‘ before pus”
具体场景描述:之前已经建好了仓库,提交过基础代码,时隔很久,继续推送新代码时,出现了问题,报错信息如下。提示:在工作树中修复它们,然后使用'git add/rm <file>'提示:详见“git push—help”中的“关于快进的说明”。这通常是由于另一个存储库推送到完成。如果要集成远程更改,请使用。错误:无法提取,因为您有未合并的文件。原因总结:需要先pull 再push。返回如下信息,本地和远程仓库联系正常。致命的:因为未解决的冲突而退出。提示:适当标记解决并提交。提示:再推之前先拉一下。
2024-04-11 23:15:55
1092
原创 苍穹外卖亮点再梳理 ||
redis是用C语言开发的一个高性能键值对数据库,官方提供的数据可以达到100000+的QPS(每秒内查询次数);9.Spring Task是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。11.Apache ECharts: 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。6.文件上传实现,有三种实现方法:①直接将图片保存到服务的硬盘②使用分布式文件系统进行存储③使用第三方的存储服务(OSS)这里采用阿里云的OSS。
2024-04-09 22:48:10
1684
原创 for循环和while循环
for循环和while循环时间和空间消耗的差异,更多地取决于循环体内部的代码逻辑而不是循环结构本身。在实际情况中,具体的时间和空间消耗可能会因为循环的结构、循环体内的代码逻辑、编译器优化等因素而有所不同。
2024-04-09 22:43:11
490
原创 常见的加密方式总结(哈希算法、对称、非对称)
哈希算法是一种用数学方法对数据生成一个固定长度的唯一标识的技术,可以用来验证数据的完整性和一致性,常见的哈希算法有 MD、SHA、MAC 等。对称加密算法是一种加密和解密使用同一个密钥的算法,可以用来保护数据的安全性和保密性,常见的对称加密算法有 DES、3DES、AES 等。非对称加密算法是一种加密和解密使用不同的密钥的算法,可以用来实现数据的安全传输和身份认证,常见的非对称加密算法有 RSA、DSA、ECC 等。
2024-04-06 21:52:52
5315
原创 如何解决“你的连接不是专用连接攻击者可能试图从 localhost 窃取你的信息(例如,密码、消息或信用卡)”
如果工作目录在IIS服务器主目录下,展开<默认网站>节点,选中工作目录,右键选择 属性菜单,在属性设置窗口的 目录 tab页中 创建应用程序,并设置相应的权限即可。解决方法:打开IIS服务器控制台,展开<应用程序池>节点,设置你的虚拟目录使用的应用程序池(在属性窗口的目录tab页上可以看到)。给当前应用程序池的属性的标识tab页中,预定义帐户改为使用配制项,在配置项中制定一个权限比较高的用户,启动该进程已进行调试。综上方法,均没有试过。1.原因:VS找不到浏览器的启动程序,重新设置默认浏览器即可。
2024-04-06 20:26:57
12942
1
原创 用python爬取CSDN博客的总字数
5、搜索需要的库,然后点击 "install package";除上述操作外,还可以将鼠标放在代码中的红色波浪线下,会弹出 install 的指令点击即可。print(f'博客字数:{get_csdn_blog_word_count(url)}')3、左侧选择 "project: ">"python interpreter";2、在菜单栏中,选择 "file">"settings";6、安装完成后,关闭对话框,点击 "ok" 保存设置即可。# 查找存放文章内容的标签。4、点击右上角的 "+" 按钮;
2024-03-22 20:47:57
944
原创 线程池相关详解
【如果核心或临时线程执行完成任务后会检查阻塞队列中是否有需要执行的线程,如果有,则使用非核心线程执行任务】执行的线程数量,达到限流的效果当一个线程执行时先通过其方法进行获取许可操作,获取到许可的线程继续执行业务逻辑,当线程执行完成后进行释放许可操作,未获取达到许可的线程进行等待或者直接结束。lsemaphore.acquire(): 请求一个信号量,这时候的信号量个数-1(一旦没有可使用的信号量,也即信号量个数变为负数时,再次请求的时候就会阻塞,直到其他线程释放了信号量)
2024-03-22 19:25:18
874
原创 Uncaught (in promise) Error: Request failed with status code 404 at createError (createError.js:
记录一个报错:Uncaught (in promise) Error: Request failed with status code 404 at createError (createError.js:16:1) at settle (settle.js:17:1) at XMLHttpRequest.onloadend (xhr.js:66:1)
2024-03-22 19:19:45
1645
原创 RentrantLock关键字详解
RenntrantLock实现了Lock接口,是一个可重入且独占式的锁。它更灵活、更强大,增加了轮询、超时、中断、公平锁和非公平锁等高级功能。ReentrantLock主要利用CAS+AQS队列来实现。它支持公平锁和非公平锁,两者的实现类似。构造方法接受一个可选的公平参数(默认非公平锁),当设置为true时,表示公平锁,否则为非公平锁。公平锁的效率往往没有非公平锁的效率高,在许多线程访问的情况下,公平锁表现出较低的吞吐量。
2024-03-21 20:57:29
852
原创 ConcurrentHashMap底层详解
在并发编程中使用HashMap可能导致程序死循环。而使用线程安全的HashTable效率又非常低下,基于此产生了ConcurrentHashMap。
2024-03-21 20:53:32
882
原创 AOP切面编程
AOP(Aspect-Oriented Programming,面向切面编程),跟oop面向过程编程相对,AOP一般用于将公共逻辑和业务逻辑进行拆分,可以减少代码间的耦合性。
2024-03-21 20:51:24
511
原创 JWT令牌详解
JWT (JSON Web Token) 是目前最流行的跨域认证解决方案,是一种基于 Token 的认证授权机制。 从 JWT 的全称可以看出,JWT 本身也是 Token,一种规范化之后的 JSON 结构的 Token。JWT 自身包含了身份验证所需要的所有信息,因此,我们的服务器不需要存储 Session 信息。这显然增加了系统的可用性和伸缩性,大大减轻了服务端的压力。
2024-03-20 18:04:51
1122
原创 @RequestBody、@RequestParm、@PathVariable三个注解的区别
1.requestParam(请求参数):使用@RequestParam注释将请求参数绑定到控制器中的方法参数。用于从请求访问查询参数值的@RequestParam注释。2.requestBody(请求体):使用@RequestBody方法参数注释表明方法参数应该绑定到HTTP请求体的值。3.PathVariable(路径变量):使用@PathVariable,URI模板可用于在@RequestMapping方法中方便地访问URL的选定部分。@PathVariable标识在传入请求的URI中使用的模式。
2024-03-20 17:52:35
713
原创 WebSocket相关知识
WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。【应用场景:视频弹幕、网页聊天、体育实况更新、股票基金报价】
2024-03-20 17:48:59
890
原创 Knife4j的相关知识点!!
Knif4j(原名为 Swagger-Bootstrap-UI)是一款基于 Swagger 实现的文档管理工具,旨在简化接口文档的编写和管理。它提供了一套美观的界面,能够自动生成接口文档,并支持在线调试接口。Knif4j 是针对 Java 后端项目的接口文档管理工具,可以与 Spring Boot 等框架很好地集成使用。
2024-03-19 22:45:10
981
原创 权限设计种类【RBAC、ABAC】
ACL(Access Control List):每一个客体都有一个列表,列表中记录的是哪些主体可以对哪些客体做什么。缺点:当主体的数量较多时,配置和维护成本大,易出错。DAC(Discretionary Access control):是ACL的扩展,在其基础上,允许主体可以将自己拥有的 权限自主地授予其他主体,权限可以随意传递。缺点:权限控制比较分散,主体权限太大,有泄露信息的危险。 MAC(Mandatory Access Control):双向验证机制,常用于机密机构或
2024-03-19 22:41:34
2907
原创 Synchronized底层原理
synchronized 是 Java 中的一个关键字,用于控制多线程的访问,确保同一时刻只有一个线程可以进入临界区(被 synchronized 保护的代码块)。synchronized 的底层实现主要依赖于 JVM 中的 monitor 对象,它是通过对象监视器在对象头中的锁标志位实现的。当一个线程获取到了对象的监视器,那么这个线程就会处于锁定状态,其他尝试获取该监视器的线程将会被阻塞,直到当前线程释放锁。
2024-03-19 22:36:10
765
原创 出现文字:Stack Overflow requires cookies for authentication -- are your browser cookies enabled for this
出现文字:Stack Overflow requires cookies for authentication -- are your browser cookies enabled for this
2024-03-15 23:30:20
427
原创 深入理解JMM
JMM(java memory model)Java内存模型:是java虚拟机规范中定义的一组规范,用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让JAVA程序在各平台都能达到一致的并发结果。其主要规定了线程和内存之间的一些关系,并描述了和多线程相关的一组规范。它解决了CPU多级缓存、处理器优化、指令重排等导致的结果不可预期的问题。
2024-03-15 23:04:13
1072
原创 二叉树LC总结
/ 先序遍历中「从 左边界+1 开始的 size_left_subtree」个元素就对应了中序遍历中「从 左边界 开始到 根节点定位-1」的元素。// 先序遍历中「从 左边界+1+左子树节点数目 开始到 右边界」的元素就对应了中序遍历中「从 根节点定位+1 到 右边界」的元素。输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]输出:[1,null,2,null,3,null,4,null,5,null,6]root = root.right;
2024-03-13 22:44:42
858
原创 JVM 重要知识梳理
当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之关联的引用队列中。(Mark-and-Compact)算法是根据老年代的特点提出的一种标记算法,标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象回收,而是让所有存活的对象向一端移动,然后直接清理掉端边界以外的内存。,它同样是一个单线程收集器。2.元空间里面存放的是类的元数据,这样加载多少类的元数据不由MaxPermSize控制了,而由系统的实际可用空间来控制,这样能加载更多的类。
2024-03-13 16:04:40
1601
原创 出现“error: failed to push some refs to ‘https://github.com/****.git‘”,如何解决问题
经过不断查看别人的博客,分析问题:发现本地库确实与远程库内容不相符合。昨天在演示如何删除远程库中的文件时,采用的是直接在github仓库中,手动删除。因此本地库还未更新删除的操作,因此需要先“pull”使本地库与远程库内容一致,才可以继续推送。今天继续推送整理的知识点的时候,出现了一个报错。“error: failed to push some refs to 'https://github.com/.git'”,百思不得其解,之前推送的时候都可以轻松推送成功,如今却说本地库与远程库不一致。
2024-03-10 23:41:26
1057
原创 深入理解Debug断点调试技巧
在软件开发过程中,调试是一个非常重要的环节,而使用断点是提高调试效率的关键技巧之一。本文将深入探讨如何利用断点进行高效的调试,常用的快捷键以及一些常见的断点调试技巧。
2024-03-10 23:41:06
1957
原创 已经连接过github远程库,如何再次推送及删除远程库的内容
基于上次将文件推送到已经建好的github远程库上,此篇文章主要介绍如何再次推送文件去直接已经连接过的远程库,以此如何删除远程库中不想要的文件。
2024-03-05 22:31:29
796
原创 【最新】如何将idea上的项目推送到gitee
8.下拉“master”,点击“push”,点击“Define remote”,弹出提示框。5.点击Version Control--Gitee--"+" 添加自己的gitee账号。6.打开idea上的项目,旁边有分支master,拉开下拉框,点击“Commit”12.回到gitee上的仓库,刷新页面,就可以看到推送成功。3.下拉,点击“创建”,出现下方页面,证明仓库创建成功。1.打开Gitee,在首页,点击“+”,创建一个仓库。10.填入idea弹出的提示框中,点击“OK”2.填写仓库基本信息。
2024-02-28 14:27:45
2061
原创 idea如何建立一个springboot项目
5.调整此项目的maven配置。3.继续“Next”,勾选web中的springweb.和Tmeplate Engines中的Thymeleaf,以及SQL中。注:此时,第一次打开可能会报错,说版本不匹配。注意下方的两个红框,将Server URL的地址改为“6.点击"Apply",点击“OK”,此时创建成功。注:着重注意红框标记,改成自己Maven的配置。”即可,再刷新,就有了需要的java版本。
2024-02-28 14:06:06
655
原创 如何将本地项目上传到github上
将本地项目上传到github上有很多种方法,这里只讲述我认为最简单快捷的一种,先在github中创建一个仓库,接着在本地建文件夹,用命令行将项目推送到本地仓库,然后连接远程仓库,将本地项目推送到远程仓库上。要熟练掌握git的常用语法!!!!
2024-02-26 22:17:47
1722
人力资源管理系统(Vue、SpringBoot和MyBatis-Plus等)
2024-02-04
可视化程序设计(内含源代码)
2024-02-04
单片机教程与设计(实验报告)
2024-02-04
客房订阅管理系统课程设计(内含源代码)
2024-02-04
编译原理教程的实验报告
2024-02-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅