- 博客(54)
- 收藏
- 关注
原创 什么是分布式锁?几种分布式锁分别是怎么实现的?
长时间无人操作,使锁自动过期 添加锁与设置过期时间需原子性。在Redis基础上实现的分布式集合。(3)使用Redisson分布式锁。(2)配置Redisson客户端。(2)基于Redis的分布式锁。(1)分布式锁的实现方式。(1)setnx存在问题。1.1 基本原理与实现方式。
2025-06-04 23:54:12
672
原创 JavaWeb是什么?总结一下JavaWeb的体系
浏览器的请求被封装到HttpServletRequestDispatcherServlet获取请求后转给Controller类-Controller类处理后将结果返回给DispatcherServlet。
2025-06-03 23:54:39
541
原创 HttpClient详细使用示例
appid jwt令牌。发布后提交审核-审核成功上线-上线可在微信界面搜索。详情里勾选不校验域名确保不连接服务器。在java程序中通过编码的方式发送请求。构造http请求,发送http请求。(3)微信开发者工具。(4)发布微信小程序。(1)产品原型+业务逻辑。(1)微信登录配置项。一:HttpClient。
2025-06-01 23:59:11
563
原创 Java数据结构之ArrayList(如果想知道Java中有关ArrayList的知识点,那么只看这一篇就足够了!)
前言:ArrayList是Java中最常用的动态数组实现之一,它提供了便捷的操作接口和灵活的扩展能力,使得在处理动态数据集合时非常方便。本文将深入探讨Java中ArrayList的实现原理、常用操作以及一些使用场景。for循环 增强for循环。修改List不发生改变(重新复制一份数据到数组中)以上就是本篇文章的全部内容了~~~修改原数组会发生改变。(2)数组转为List。(3)List转为数组。
2025-05-31 23:48:25
367
原创 互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景
写的数据需要一个一个来,排队执行。1.1MySQL并发事务访问相同记录。结束阻塞行为方能访问。1.2并发问题解决方案。三:表级锁、页级锁、行锁。
2025-05-29 23:57:32
226
原创 Mysql基础增删改查语句
实体集、属性、联系集 ORM思想(Object Relational Mapping)一对一关联 一对多关系。关系型数据库 文档型数据库。一张表能存储成千上万条数据,而且查询方便。数据库管理系统、数据库和表的关系。OR前后语句应是完整的。(3)RDBMS与非RDBMS对比。
2025-05-28 23:51:05
476
原创 《算法和数据结构》算法篇
明显缺点(没法反应二叉树的逻辑关系【不知道节点的左右节点】)根节点和叶子节点:最上方没有父节点的节点为根节点,最下层没有子节点的节点为叶子节点。父子节点:每个节点下方直接相连的节点称为子节点,上方直接相连的节点称为父节点。只用于完全二叉树,防止左斜(没有字节点,全在左边或右边)树是一种非线性的数据结构,它是由n个有限节点组成有层次关系的集合。按照层次,从左到右依次访问二叉树中的每个节点。遍历节点顺序仅取决与左右子节点的递归调用顺序,与其它代码无关。子树:以子节点为根的树称为子树。
2025-05-27 23:58:47
566
原创 JAVA基础编程练习题--50道
采用Vetor存储Object对象数组,不使用for使用while进行循环(因为没有明确的次数,且给出了结束条件)设计方法求圆的面积,将半径做为类的熟悉,而不是做为方法的参数,因为圆这个类自带属性。比较m、n大小-(从后往前)遍历小的数字-获取所有(共有)约数-输出最大约数。创建实现类对象,新建Thread对象(传入实现类对象以及线程名称)Start():启动线程,调用线程的run方法。火车站(买票【小于100】),窗口(售票)使用while打印1-100(通过if判断是否小于100)
2025-05-26 23:59:28
1470
原创 JAVA集合(含List、Map、Set)(超详细版)
使用增强for循环的方式修改元素临时变量,可能不会导致原有集合或数组中元素的修改。服务端决定采用什么数据结构存储数据库数据后以特定格式返回客户端。造对象-调方法-不同实现类区别。优点:元素的类型既可以是基本数据类型,也可以是引用数据类型。Add():将集体整体作为一个对象。addAll()与add()区别。1.3 Collection接口。1.4 List接口。(3) for增强。1.2 集合框架体系。
2025-05-25 23:56:55
1002
原创 Java中的String的常用方法用法总结
string类包含许多方法可转换为数组、处理字符串(去除空字符串、判断是否相等、获取字符串索引),通过字符串调用相应方法。当调用字符串的replace替换现有的某个字符时,需要重新开辟空间保存修改以后的字符串,不能在原有位置修改。当对字符串变量重新赋值时,需要重新指定一个字符串常量的位置进行赋值,不能在原有位置修改。当对现有字符串进行拼接操作时,需要重新开发空间保存拼接以后的字符串,不能在原有的位置修改。调用方法的字符串不变,返回的结果是拼接后的字符串。字符串常量池不允许存放两个相同的字符串常量。
2025-05-24 23:59:18
388
原创 你通俗易懂的理解——线程、多线程与线程池
(2)解决思路:保证一个线程a在操作ticket的过程中,其它线程必须等待,知道线程a操作ticket结束以后,其它线程才可以操作共享数据。需要被同步的代码,在被synchronized包裹以后,就使得一个线程在操作这些代码的过程中,其它线程必须等待。抓的过程,生成异常类对象后将对象抛出,程序不执行其后代码。同步监视器:俗称锁,哪些线程获取了锁,哪个线程就能执行需要被同步的代码。程序是一段代码,进程是程序的执行过程(从创建到使用到消亡),线程。使用线程同步机制(同步代码块或同步方法)
2025-05-22 23:58:36
1128
原创 基础篇:数据库 SQL 入门教程
(1)实例(2) SQL的准备过程先准备表格后查询字段:通过from和join准备表格后,先筛选后计算,在准备好的表格复制粘贴或计算字段(order是对准备好的表格进行排序,Limit是对准备好的表格进行限制)(3)运算符between包含区间两端值,null:数据库某个数值为空。
2025-05-16 23:58:22
1048
原创 线程与进程,你真得理解了吗
程序:某种语言编写的一组指令的集合,即指一段静态的代码进程:在内存中运行的程序(程序的一次执行过程),有创建、运行、消亡的过程。线程:一个进程中至少有一个线程(1)定义(2)应用情景(3)解决方案。
2025-05-15 23:58:55
915
原创 redis 缓存穿透,缓存击穿,缓存雪崩
(1)计算机:cpu、内存、磁盘,cpu任何需要的数据都要从内容中读入数据放入cpu,从cup内部添加一个缓存(2)web开发的每个阶段都可以添加缓存(3)缓存优缺点(中小型企业数据量不大时没必要使用缓存)(1)定义(2)解决方案缓存空对象布隆过滤器(3)解决方案。
2025-05-14 23:56:30
1263
原创 MySQL详细学习教程(建议收藏)
存储引擎:建立索引、更新机制(1)InnoDBDML操作遵循ACID模型,支持事务;行级锁;支持外键每一张表对应一个表空间(表结构、数据、索引)存储结构:(2)选择:根据系统特点选择合适的存储引擎高效获取数据的有序数据结构普通查询:按顺序查询完整张表(全表扫描)有索引:3次即可完成查询。
2025-05-13 23:57:51
960
原创 SpringMVC(看这一篇就够了)
Web程序通过浏览器访问前端页面,前端页面使用异步提交方式发送请求到后端服务器-后端服务器采用表现层、业务层、数据层三层架构形式开发-页面发送的请求由表现层接收-获取用户请求参数后将参数传递到业务层-业务层访问数据层-得到用户需要访问的数据后将数据返回给表现层-表现层将数据-表现层拿到数据后将数据转换为json格式返回给前端页面 -前端页面接收数据后解析数据并组织成用户浏览的最终页面信息交给浏览器 数据层:JDBC-Mybatis
2025-05-12 23:43:09
405
原创 springboot3整合SpringSecurity实现登录校验与权限认证
系统判断身份是否合法 为了避免每次操作都进行认证可将用户信息保存在会话中 session认证 服务端有个session,把 session id给前端,每次请
2025-05-11 23:55:14
1687
1
原创 Redis实现短信验证码
后台服务需要缓存验证码、账号和该验证码的对应关系以及设置超过时间(一般是60秒)等;因为Redis提供了超时自动删除键值功能, 而且在多个tomcat节点可以访问同一个redis, 所以用Redis实现验证码功能。登录接口会比较入参验证码参数和缓存在中间件redis里的验证码, 一般app在传输密码字段时会加密;每个账号对应唯一的key,为了区分redis的key值, 要添加前缀或者后缀, 本例中是添加前缀login:token。现在app登录都有个验证码登录功能, 至少包含2个接口:获取验证码和登录。
2025-05-10 23:56:54
284
原创 Nginx详解(一文带你搞懂Nginx)
前端发送的请求如何请求到后端服务 (1)定义:ngix反向代理,就是将前端发送的动态请求有ngix转发到后端服务器
2025-05-07 23:56:15
1560
原创 Session详解,学习Session,这篇文章就够了(包含底层分析和使用)
Filterr表示过滤器,是JavaWeb三大组件(Servlet、 Filterr、Listener)之一。
2025-05-06 23:44:59
885
原创 【SpringBoot篇】详解短信验证码登录功能实现
在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!(1)产品原型 (2)业务逻辑 (3)接口设计。(1)业务逻辑 (2)接口设计。
2025-05-05 23:22:06
1141
原创 SpringMVC详解
持久层:负责将数据保存到数据库的那一层代码框架:半成品软件,是一套可重用的软件基础代码模型,在框架的基础上构建软件、编写更加高效。
2025-05-04 23:03:07
2042
原创 使用PageHelper实现分页查询(详细)
好处:把sql进行动态拼接(把limit关键字拼入sql,同时将传递的两参数计算后拼入sql)(1)操作:查询,请求方式:get,提交数据:页码、每页记录数、员工姓名,后端响应数据:总的记录数,当前页的数据集合。解决的问题:解决了需要计算页码和每页记录数后拼入sql的手动操作问题。分页查询结果统一封装成PageResult对象。(2)请求参数不是json格式,而是Query格式(地址栏问号方式传参)(1)分页展示,每页展示10条数据,根据员工姓名进行搜索。告诉插件想查第几页第几条。(2)Mapper类。
2025-05-03 23:33:28
990
原创 电商平台的订单状态设计流程
设置店铺营业状态:功能是什么(设置营业状态)-需要存储什么数据(状态值“1”或“0”)-怎么存(Redis)-是否需要返回结果(返回是否成功)put请求方式,请求路径:/admin/shop,传递数据:状态(以地址栏/请求体/路径参数传递),返回数据:是否成功。修改原因状态、查询店铺营业状态(不建一个查询接口原因:管理端和用户端项目约定的路径不一致)功能是干什么的(查询店铺状态)-不需要保存数据-是否需要返回结果(返回状态值)(2)作用:设置后会影响到小程序端用户点餐。(1)设置营业状态(修改类操作)
2025-05-02 23:09:28
993
原创 数据库基本概念:数据库的定义、特点、分类、组成、作用
(1)数据库:存储数据的仓库(2)数据库管理系统:模拟和管理数据库的大型软件(3)SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准(1)键值型数据库redis内存的数据都是键值对解决松散问题:一个用户的多个字段组装成一个sjon字符串做为value存储。
2025-05-01 23:39:21
768
原创 Java 中的 设计模式详解
在程序需要进行拓展的时候,不能修改原有代码使用到接口和抽象类:定义接口和抽象类,定义子类,在接口里定义所有设计模式是软件开发中的宝贵财富,它们为解决常见问题提供了标准化的解决方案。通过深入理解并灵活运用这些模式,你可以编写出更加健壮、可维护和可扩展的代码。
2025-04-30 23:28:28
1404
原创 【Java核心】一文理解Java面向对象(超级详细!)
解决问题:创建了子类对象并且加载了子类特有属性和方法,但声明的是父类导致没办法调用子类特有属性和方法。先找实现事情涉及到的主体(类)、后看类完成任务需要具备什么功能(方法)属性、方法、构造器、代码块、内部类。封装、继承、多态(抽象)1.4面向对象和面向过程。4.3 子类对象实例化。
2025-04-29 23:58:36
310
原创 SpringBoot新增员工模块开发
返回值统一用Result封装,json格式数据添加@RequestBody注解,post请求方式使用@PostMapping注解,接口文档描述使用@ApiOperation注解+调用service完成新增操作。请求方式:post,提交的数据:表单项,提交格式:json,后端返回的数据格式:json、Result。不使用实体类原因:前端提交的数据与实体类中对应的属性差别较大时,使用DTO来封装数据。对象属性拷贝:设置实体对象属性。密码:先加密后存入数据库。表的字段:使用下划线分割。单表新增操作:使用注解。
2025-04-26 23:21:35
875
原创 Git基本使用(很详细)
(1)定义:版本控制时一种记录文件内容变化,以便将来查阅特定版本修订情况的系统(2)举例多副本优化:不使用多副本方式做版本控制:从个人开发过渡到团队协作(1)定义同时推进多个任务是,为每个任务单独创建分支。使用分支意味着开发人员可以把自己的工作与开发主线分类开来,不影响主线运行。
2025-04-25 23:21:17
1700
原创 java IO流
(1)InputStream (2)OutputStream (3)Reader (4)Writer 创建文件对象+创建输入型字符流+读取数据并显示在控制台上+流资源关闭 使用try-catch-finally方式处理异常(ctrl+
2025-04-24 23:15:00
869
原创 【MySQL】:数据库事务管理
A、B事务同时操作数据库或一张表时引发的问题Serializable:所有问题可解决本文详细介绍了事务的概念、操作和隔离级别,包括事务的四大特性(ACID),并发事务问题以及不同的事务隔禅级别。通过学习本文,读者可以深入理解事务在数据库管理中的重要性,掌握如何使用事务来确保数据操作的一致性和完整性,以及如何选择合适的事务隔离级别来处理并发访问的问题。这些知识将有助于读者在实际应用中更加有效地管理数据库操作,提高系统的稳定性和性能。
2025-04-21 23:03:03
1588
原创 看这一篇就够了!-Ajax详解
主流方式:静态HTML联合ajax于服务端进行通信 后端:业务逻辑+数据访问 区别在于用户是否需要等待服务器响应 (1)如何通过ajax给对应服务端发送请求,能否获取对应响应数据 (2)后端:响应数据 (3)前端:创建
2025-04-20 23:44:45
332
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人