自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 Java----代理

在Java中,代理是一种用于创建一个或多个服务的中间层,它可以拦截并处理程序对实际服务对象的请求。代理模式是一种设计模式,属于结构型模式,它允许程序员在不修改实际对象代码的情况下,增强或控制对它的访问。静态代理在编译时就已经确定代理类和原始类的关系。代理类通常与原始类实现相同的接口,然后在代理类中维护一个原始对象的引用,从而可以在调用原始对象方法前后添加额外的处理逻辑(例如日志记录、权限校验等)。2.动态代理:动态代理是在运行时动态创建的代理方式,不需要在编译时确定代理类。Java提供了类和接口来

2024-07-30 23:59:13 436

原创 Java----反射

反射就是允许对成员变量、成员方法和构造方法的信息进行编程访问。换句话来讲,就是通过反射,我们可以在不需要创建其对象的情况下就可以获取其定义的各种属性值以及方法。常见的应用就是IDEA中的提示功能,当我们使用某个对象,使用“.”的时候,IDEA会自动进行提示,会弹出一个显示关于该对象所有能调用的方法。除了获取构造方法,我们还可以使用反射获取其成员变量,包括其记录值、修饰符、数据类型等。

2024-07-30 21:17:51 518

原创 JUC----死锁

所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局;当进程处于这种僵持状态,而且无外力作用时,它们都将无法再执行任务。

2024-07-30 14:46:46 214

原创 Java网络编程----TCP发送与接收数据

Java网络编程----TCP发送与接收数据,这里采用try-with-resource机制进行关闭各种资源,可以节省很多代码,需要注意是,这里的关闭顺序是括号填入对象的。

2024-07-29 21:14:30 179

原创 Java网络编程----UDP实现单播,组播,广播

UDP 的全称是 User Datagram Protocol,用户数据报协议。它不需要所谓的握手操作,从而加快了通信速度,允许网络上的其他主机在接收方同意通信之前进行数据传输。TCP 的全称是Transmission Control Protocol ,传输控制协议。它能够帮助你确定计算机连接到 Internet 以及它们之间的数据传输。通过三次握手来建立 TCP 连接,三次握手就是用来启动和确认 TCP 连接的过程。一旦连接建立后,就可以发送数据了,当数据传输完成后,会通过关闭虚拟电路来断开连接。

2024-07-29 18:04:39 876

原创 Java----常见并发工具类

CyclicBarrier的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。例如:公司召集5名员工开会,等5名员工都到了,会议开始。我们创建5个员工线程,1个开会线程,几乎同时启动,使用CyclicBarrier保证5名员工线程全部执行后,再执行开会线程。CyclicBarrier的相关方法。

2024-07-28 19:47:48 404

原创 JUC----ConcurrentHashMap

在synchronized(f)同步块里面则是与HashMap一样遍历该链表,如果该key对应的链表节点已经存在,则更新,否则在链表的末尾新增该key对应的链表节点。综上所述,关于两个版本最突出的变化就是锁的范围不一样,1.7则是采用ReentrantLock将Segment锁起来了,里面包含着链表数组,而1.8则只锁了某个正在操作的链表,可见1.8的粒度更细了,这样多线程冲突就会大大降低,提高效率,说到效率我们在1.8的添加操作可以看到有判断树节点的操作,说明其又重新引入红黑树结构,加大查询效率。

2024-07-28 17:54:19 1025

原创 Java----CAS算法与AtomicInteger源码解读

为了确保对数据操作的原子性,在java.util.concurrent.atomic下定义许多关于各种基本类型数据的提供原子操作的类。这里我们以AtomicInteger为例子。AtomicInteger的本质:自旋锁 + CAS算法CAS的全称是: Compare And Swap(比较再交换);是现代CPU广泛支持的一种对内存中的共享数据进行操作的一种特殊指令。CAS可以将read-modify-write转换为原子操作,这个原子操作直接由处理器保证。

2024-07-28 14:27:14 884

原创 JUC----如何保证多线程下原子性

修改VolatileAtomicThread 类,这里因为是案例,我们直接去继承该实现类,就可以使用里面的类方法,在操作count前进行加锁操作,操作完count了之后直接释放锁。比如定义读锁即共享锁,其他线程读取到该资源,不会造成阻塞,还可以使用写锁即排他锁,其他线程无法修改锁定的资源,保证线程安全。5.synchronized关键字是非公平锁,即,不能保证等待锁的那些线程们的顺序,而Lock的子类ReentrantLock默认是非公平锁,但是可通过一个布尔参数的构造方法实例化出一个公平锁。

2024-07-27 22:06:09 569

原创 JUC----Volatile与JMM之间的联系

volatile保证不同线程对共享变量操作的可见性,也就是说一个线程修改了volatile修饰的变量,当修改写回主内存时,另外一个线程立即看到最新的值。但是volatile不保证原子性。

2024-07-27 21:10:52 898

原创 Thread----线程状态

需要注意的一点是,在Java中并没有声明运行状态,因为当我们的程序进行可执行状态时(Runnable),等待CPU的调度,由于当线程获得CPU执行权时,JVM会将当前线程交给操作系统去管理,所以在JVM中并不需要定义运行状态。当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?通过源码我们可以看到Java中的线程存在6种状态,每种线程状态的含义如下。

2024-07-24 18:05:13 330

原创 如何创建线程池?

自定义线程的几种情况:情况一:此时核心线程是3,最大线程是6,提交3个任务,此时线程池会创建三个线程,分别执行三个任务,不会创建临时线程。情况2:此时核心线程是3,最大线程是6,提交5个任务,此时线程池会创建三个线程去执行三个任务,剩下两个任务进行队列排队等待,不会创建临时线程。情况3:此时核心线程是3,最大线程是6,队伍长度为3,提交8个任务,此时会先创建三个线程执行三个任务,并让接下来三个任务进行等待队伍,剩下了2个任务。

2024-07-23 21:42:31 305

原创 TreeMap----源码分析

那么此时会使用key进行比较,首先会假定其已经实现了Comparable接口,然后尝试调用其compareTo方法,但是你会发现TreeMap里面从头都没有重写compareTo方法,其实这个时候如果这个键是String,他会String类型中已经重写的compareTo方法,实现比较。该重载方法有三个,1:键,2:值,3是否覆盖:true是覆盖,false则是保留,这和hashmap刚好反过来,hashMap中定义的是onlyIfAbsent,表示是否保留和此处相反。没有节点时,会调用以下方法,

2024-07-13 18:48:59 300

原创 LinkedList----源码分析

添加过程中的操作:当创建LinkedList类时,会调用其空参构造方法,将其参数进行初始化,里面有:当我们进添加元素的时候,此时会调用我们的linkedLast方法,然后将我们要添加的元素放入一个Node内部类中进行封装,如下:在调用linkedLast方法:

2024-07-11 23:04:22 293

原创 ArrayList----源码分析

List接口的可调整数组实现。实现所有可选列表操作,并允许所有元素,包括null。除了实现List接口之外,这个类还提供了一些方法来操作内部用于存储列表的数组的大小。(这个类大致相当于Vector,只是它是不同步的。)size、isEmpty、get、set、iterator和listiterator操作在常量时间内运行。添加操作在平摊常数时间内运行,即添加n个元素需要O(n)时间。所有其他操作都在线性时间内运行(粗略地说)。与LinkedList实现相比,常数因子较低。

2024-07-11 22:57:58 837

原创 HashMap----源码解读

【代码】HashMap----源码解读。

2024-07-11 22:51:57 181

原创 力扣5----最长回文子串

力扣5----最长回文子串

2024-07-06 20:51:23 291

原创 SpringAI初体验----拒绝繁杂请求构造,即开即用

SpringAI初体验,拒绝繁杂配置

2024-04-26 16:32:05 295

原创 Springboot整合文心一言----非流式响应与流式响应(前后端)

Springboot整合文心一言----非流式响应与流式响应(前后端)

2024-04-26 16:10:05 1890 1

原创 使用讯飞语音识别----前后端如何交互?

使用讯飞语音识别----前后端如何交互?

2024-04-26 15:23:18 598

原创 Centos使用共享目录共享so文件----讯飞语音识别

Centos使用共享目录共享so文件----讯飞语音识别

2024-04-26 11:58:01 271

原创 第十四届蓝桥杯第十题:蜗牛分享

蜗牛路线:(0,0)→(1,0)→(1,1)→(10,1)→(10,0)→(11,0)(0,0)→(1,0)→(1,1)→(10,1)→(10,0)→(11,0),花费时间为 1+10.7+0+11.3+1≈4.201+0.71​+0+1.31​+1≈4.20。输出共一行,一个浮点数表示答案(四舍五入保留两位小数)。当状态分析好以及状态方程定义好就成功了大半!

2024-03-29 17:41:15 500

原创 Kafka集成springboot

springboot集成kafka

2023-12-09 13:49:48 942

原创 Hadoop----Azkaban的使用与一些报错问题的解决

Hadoop----Azkaban的使用与一些报错问题的解决

2023-10-09 20:16:25 818

原创 Hadoop----Hive的使用

Hadoop----Hive的使用

2023-10-09 20:00:10 619

原创 Java----Sentinel持久化规则启动

Nacos整合Sentinel实现规则持久化

2023-08-28 01:23:04 894

原创 LeetCode热题100第49题----题目分享

给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的所有字母得到的一个新单词。

2023-08-10 21:07:11 420

原创 Java----Nacos服务注册

除了通过Eureka,还可以通过我们的Nacos进行注册服务,方法也很简单。

2023-07-15 10:54:21 724

原创 Java----使用eureka进行注册连接(微服务简单实现)

Java----使用eureka进行注册连接(微服务简单实现)

2023-07-10 16:02:37 877

原创 Vue2----Uniapp自定义弹窗

对于擅长后端的程序员,在编写前端时常常回去找库,比如elementUI,uview之类,但是往往这些库较为冗杂,有些功能比较强大,基本用不到,不好理解。这时候,如果可以自定义组件可能会对开发起到更好的效果,虽然会消耗一定的时间去学习Css等,但是有可能比花费时间去理解官方文档更快噢。

2023-07-10 15:26:41 978

原创 Java实验----文件的基本操作

Java实验----文件的基本操作

2023-04-18 22:53:52 625 2

原创 Java实验----学生英语管理系统小案例+MySQL存储

Java实验----学生英语管理系统小案例+MySQL存储

2023-04-12 22:52:05 229

原创 JavaWeb----SpringBoot整合Swagger2

SpringBoot整合Swagger2

2023-04-01 22:37:38 300

原创 SpringMVC---RESTful风格简化开发

SpringMVC---RESTful风格简化开发

2023-03-26 23:52:42 151

原创 stm32连接温湿度传感器----通过串口发送dht11数据

stm32连接温湿度传感器----通过串口发送dht11数据

2023-03-25 20:31:14 1260

原创 stm32----串口通讯,通过串口控制LED灯

stm32----串口通讯,通过串口控制LED灯

2023-03-25 10:15:11 3689

原创 Spring开启事务----银行小案例

因为除数不能为零,所以会报错,一报错事务就会回滚,所以此时可以查看数据库信息,是不会变化的。(可以将int i = 1/0的语句去掉,看看你的其他类编写是否正确,之后再进行事务的测试)properties的文件可以看我的另外一篇文章,

2023-03-23 22:51:06 311

原创 Spring---AOP编程,面向切面编程小案例

Spring---AOP编程,面向切面编程小案例

2023-03-22 23:07:05 132

原创 Spring----整合Mybatis

Spring----整合Mybatis

2023-03-22 22:55:23 574

原创 Spring----数据库对象管理

Spring----数据库对象管理

2023-03-20 21:56:05 91

hm课程的登录小案例资料

hm课程的登录小案例资料

2023-03-12

emqx的zip包部署mqtt服务器

一个非常不错的资源,可以很好的适配许多电脑

2023-02-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除