- 博客(25)
- 收藏
- 关注
原创 Redis——实现消息队列
消息队列:Message Queue,字面意思就是存放消息的队列,最简单的消息队列模型包括3个角色以下就是基于Redis结构特性来实现消息队列。
2025-04-10 22:57:37
252
原创 MySQL——锁
读锁不会阻塞其他客户端的读,但是会阻塞写。写锁及会阻塞其他客户端的读,也会阻塞其他客户端的写对于DML操作插入,删除,查询表中的数据互相兼容,对数据库结构操作失败客户端一:开启事务进行查询语句客户端二:更新数据操作库表:为该库表添加一个字段失败意向共享锁与读锁兼容,与写锁互斥。意向互斥锁与读锁写锁互斥。1.针对索引进行检索时,对已存在的记录进行等值匹配时,将自动优化为行锁2.InnoDB的行锁是针对于索引加的锁不通过索引条件检索数据,那么InnoDB将对表中的所有记录加锁,此时。
2025-04-09 22:00:18
665
原创 MySQL——InnoDB引擎架构
当我们去操作MySQL的时候先去操作缓冲区,如果缓冲区没有数据会将磁盘中的数据加载回来,然后再存储在缓冲区中,我么在增删改的时候都去操作缓冲区,然后缓冲区中的数据 会以一定频率通过后台线程写道磁盘架构中进行永久化保存。
2025-04-09 12:28:38
745
原创 Spring Boot Starter开发
是 Spring Boot 的依赖管理方式,是一组预定义的依赖集合。其用途在于简化项目依赖配置,避免手动添加和管理大量依赖。1.所以spring-boot-starter还是很强大的,不需要手动处理复杂的依赖关系,只需在pom.xml文件中引入就可以java中调用,大家试想一下大家在做项目的时候只是引入了mybatis-plus-boot-starter就可以在java中对数据库进行操作了可见有多么便捷,好用。2.如果不开发引入spring-boot-starter就要自己编写配置类手动创建配置类。
2025-03-23 22:28:55
516
原创 redis实现分布式锁(一)
其实是够用的,它是基于每个服务器的锁监视器来完成的,但是集群模式下synchronized,有多个jvm,多个锁监视器,不共享,所以就需要多个jvm可以共享看到的锁监视器分布式锁。好啦,这样就可以实现一个简单的分布式锁啦,但是还会存在解锁安全的问题,这个问题在我下一篇文章,如果觉得有用的话麻烦给我点个关注,我是废材,会持续更新有用的编程知识!所以需要保证添加锁和设置过期时间的原子性,redis本身就有方法保证添加锁和设置过期时间。但是大家想一下,有没有可能获取锁了但还没有给锁设置过期时间服务器就宕机了。
2025-03-17 18:56:30
213
原创 全局异常处理器
接下来我们就可以自定义异常类了,登录时产生的异常(LoginFailedExceeption),注册时产生的异常(AccountNotFoundException)等等,但是大家也不要担心这些异常类里面实现也很简单,因为全局异常处理器已经帮我们对于异常做出了处理,我们只需要继承实现就可以了,这样只是为了更加规范。方法抛出指定类型的异常时,Spring会自动调用被@ExceptionHandler注解的方法来处理该异常。我是废材,如果觉得有用的话麻烦点个关注,我会持续更新有用的编程知识!
2025-03-16 21:32:49
340
原创 参数配置化
如果开发当中要用到技术和服务,这些运行时需要传递过来一些参数交给配置文件统一的进行管理和维护value这个注解来注入对应的外部配置的属性值。
2024-10-15 22:48:20
195
3
原创 文件上传至-阿里云oss
bucket:存储空间是用户用于存储对象的容器,所有的对象都必须你属于某个存储空间SDK:软件开发工具包,包括辅助软件开发的依赖,代码示例,都叫SDK1.开通对象存储服务(不用充钱)2.如何创建bucket只需要填写BUcket名称 地域 读写权限改成共读性便可以创建成功3.获取秘钥点击AccessKey管理按照提示便可创建4.参照官方填写入门程序(以java为例子)点击sdk下载,再点击相应的文档便可得到右边的帮助文档,然后点击右下角的文档中心打开阅读文档找到文件上传。
2024-10-15 20:39:32
222
原创 算法与数据结构
分而治之(分拆分成对个子问题,治解决相应的子问题,合把多个子问题合并起来)递归本质就是,,递,,,必须要有终止条件,,,return就是归,,,减而治之(二分查找)快慢指针法来解决查找中间节点。哨兵的next可以解决哨兵问题。删除倒数元素递归和快慢指针法。
2024-02-08 22:59:41
367
2
原创 Java IO流
最好是同时读取文件本身大小的字节一次读取玩就不会出现乱码的情况(readallbytes()将文件对象的字节数据装到一个字节数组里去)2.io流分(字节流,字符流)FileInputstream FileOutputstream FileReader FileWriter(将磁盘文件以字节的形式读入到内存中的流,将内存中的数据写出到磁盘文件的流。UTF-8是国际字节,数字,英文占一个字节。编码简而言之是将string字符串编码为字节并存储到字节数组去(getbytes)解码是将一组数组字节解码成字符串。
2024-01-15 19:55:21
322
1
原创 Java线程相关知识
Getname是获取当前线程的名字,setname改变名字,currentThread获取当前执行线程的对象。Sleep类似于百度网盘的限速。3. S.可以实现Runnable接口从写run方法,再在主线程实现接口并把任务对象交给Thread处理(优点就是扩展性更强可以继承其他类,实现其他接口,缺点就是代码比较繁琐,)2. 创建多线程可以f.继承Thread类从写run方法,再在主线程启动start方法(缺点就是继承了其他类不利于扩展)#不要把主线程任务放在子线程之前。
2023-12-19 13:33:40
331
原创 Java中File相关知识
相对路径:不带盘符,默认直接到当前工程下寻找文件,可移植性更强。exists判断文件存不存在,isfile,isdirecotry判断是否是文件、文件夹📁,getname获取文件名称,length获取文件大小,getpath获取文件相对路径,getabsolutepath获取文件绝对路径。createnewFile创建空的文件,mkdir创建一级文件夹,mkdirs创建多级文件夹,delete只能默认删除文件和空文件夹。1.File类只能对文件本身进行操作,不能读写文件里面存储的数据。
2023-12-06 17:17:29
38
1
原创 stream流
2.stream流中间方法,filter过滤,sort对元素进行升序排序,limit获取前几个元素,skip跳过前几个元素,distinct去除流中重复元素,如果是对象则要重写equals和code方法(性能二字,只重写equals方法也可以,但是一个一个去对比效率太低,用code直接定位元素位置提高效率),map对元素进行加工返回新元素,concat将两个流合并成一个流。难得是map,map系列f,调用keyset,value在调用stream流把他们分开,s,或者用entry把他们打包成一块来。
2023-12-06 16:36:37
205
1
原创 Java集合系列后续
Map常用方法{put,size,clear,isempty,get,remove,containskey,containvalue,keyset,values}1.Map{hashmap(linkedhashmap),treemap}Map集合特点都是由键决定的,值只是一个,对值要求不高。Linkedhashmap-->有序,不重复,无索引。Hashmap-->无序不重复,无索引(用的最多)Treemap-->按大小升序排序,不重复,无索引。
2023-12-06 15:54:53
34
1
原创 Java基础语法注意事项
1.string类型变量属于引用类型且不可变类型变量,比如在main方法中定义一个string类型变量,然后又定义一个方法改变值但最后输出的还是最开始得那个值。因为在方法定义的那个值随方法结速而消失。(1.使用迭代器自带的删除方法删除即可2.使用数组遍历删除,但每删除一个元素就要进行i--操作)方法区:静态储存区放class和static 栈区:放基本类型变量,存储方法局部变量。参数名称)1.可以灵活接收数据,数组都可以2.在方法内部就是一个数组3.只能有一个且在形参列表最后一位。
2023-12-02 22:38:54
34
原创 Java集合系列
list接口{有序,可重复,有索引}->(arrayslist,linkedlist) set接口(无序,不重复,无索引)->{hashset/无序,不重复,无索引(linkedset/有序,不重复,无索引),treeset/按升序排序,不重复,无索引 }无索引,不重复,可默认升序排序(int,double根据数值大小实现 ……7. Arrayslist(常用),Linkedlist,Hashset(常用),Linkedhashset,treeset根据其自身特点来选。
2023-12-02 22:23:17
206
原创 Java高级语法部分
那就要自己来定义异常类(1.定义一个异常类来继承runtimeexception2.重写构造器3.throw new创建异常类并抛出)(1.定义一个异常类继承exception2.重写构造器f.generat.s.constrction3.throw new创建异常类并抛出)层层抛出Ctrl加回车键返回到调用者那并try加抓住返回响应(1.捕获异常并记录异常并返回合适信息给用户2.捕获异常并尝试重新修复)throws将方法内部的异常抛出去给调用者处理2.try ……舍弃一半再去中间值如此反复,效率飞常高。
2023-11-29 22:46:23
185
1
原创 Java system runtime相关API
1.让该对象的类实现Comparable(比较规则)接,然后重写compareTo方法,自己来制定比较规则。2.使用下面这个sort方法,创建ComparatoP比较器接口的匿名内部类对象,然后自己制定比较规则。super Tc)对数组进行排序(支持自定义排序规则)。arrays.tostring(返回数组的内容)copyofange(拷贝数组指定范围)sort对数组进行排序。system.(exit(停止当前运行),currenttimeMIlls(返回当前系统时间毫秒值也就是判断性能怎么样))
2023-11-28 18:09:05
36
原创 Java日历时间API
equals siafter isbefore判断两个日期对象是否相等,在前还是在后以上均适用与localtime,localdate,localdatetime。zoneid.(getavailablezoneid(获取所有时区),systemdefault(获取系统默认时区),of(获取一个指定时区时间))zoneiddatetime.now()获取当前时区对象,若往括号里填地区的获取指定地区时间。2 .get可以获取年,月份,日,一年中的第几天,获取星期几。以上关于时间日期及创建对象的方法。
2023-11-28 16:48:05
135
原创 巩固基础Java
2.子类想为父类成员变量赋值,但父类成员变量又是私有的,只能调用其有参构造器。主题调用子类把参数传给子类时是调用子类有参构造器,所以子类要写一个方法来接收数据,并把数据传个父类的私有成员。4.重写抽象类方法调用父类,或者抽象类,或者接口类的成员变量就要调用get.y方法来得到值。单列类1.构造器私有2.私有类变量储存instance,定义一个公用方法返回instance。5.this只能调用自己类里的成员变量或方法,super才能调用父类的成员变量或方法。1.封装就是把对象与处理对象的方法放在同一个类里。
2023-11-27 23:39:31
35
原创 Java高级语法最后篇章
1.从JDK8开始接口就新增了一些方法包括(默认方法(default修饰,实现类对象调用),静态方法(static接口名称调用老熟人了),私有方法(接口内部被调用))增加这些增加了接口的能力,便于系统扩展与维护。2.成员内部类就是类中在建立一个类,如果想创建内部类就先调用外部类在点内部类。静态内部类创建对象格式为外部类名.内部类 对象名=new 外部类.内部类()(不可以直接访问外部类实例成员,但可以访问静态成员)内部类分为(静态内部类,局部内部类(鸡肋语法),匿名内部类(重要的))
2023-11-25 21:44:40
315
原创 Java高级语法
接口只有成员变量(常量)成员方法(抽象方法)所以接口就只是被子类实现,不能创建对象。通过接口扩展性能更专一呦,看到 im的接口就知道自己有什么功能了,接口和抽象类和父类一样被多个子类继承或实现完全没问题。4.抽象类,不能写方法主题特殊的类。正常类有的他都有(成员变量,方法,构造器)但唯一的就是他可以定义抽象方法,子类继承时必须重写方法所以他可以用来做模版方法设计模式,更好支持多态,减少代码重复编写。2.final关键字用的比较少可以修饰(类,方法,变量)但引用类型变量只可以修改数据,不可以修改地址。
2023-11-24 00:32:02
243
1
原创 Java面向对象的高级语法
5.子类构造器都会先调用父类的构造器再执行自己的,因为子类构造器第一行都会默认有super调用父类无参构造器 且如果父类没有无参构造器想调用父类有参构造器必修在第一行用super。7.多态继承/实现的一种现象。表现为对象多态,行为多态但多态必须满足三个条件(1.有继承/现实关系2.存在父类引用子类的现象3.存在方法重写)对象多态,行为多态成员变量不谈多态。4.子类访问其他成员变量 成员方法是按照就近原则 局部 子类里 父类里,如果与父辈重名且必须访问父类里的那就要用super关键字来调用。
2023-11-23 12:20:18
141
原创 Java基础阶段学习体会与感悟
2.代码块其实用的不多简单就是对类完成初始化赋值,大多是在面试题中,或者源码时。分静态代码块,实列代码块类只执行一次,静态代码块也执行一次。实列代码块优于无参构造器。1.static类对于实列变量有更容易被调用,不用创建对象,所以常用来设计工具类。但由于工具类不需要创建对象,所以就建议将无参构造器私有.这样显得更专业。3.设计模式具体方案最优解,单列模式下只能创建一个对象,且在获取类的对象时就创建好了。1.构造器私有2.定义类变量储存一个类对象3.定义一个方法返回对象。
2023-11-22 00:27:03
33
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人