- 博客(28)
- 收藏
- 关注
原创 SpringBoot 实现拦截多次请求路径
实现拦截器接口(HandlerInterceptor)并且配置配置类(WebMvcConfigurer)因此解决办法就是进行拦截,拦截的方式很多种,这里使用SpringBoot进行拦截示例。当用户多次点击按钮,导致多次请求同一连接,在高峰时期更会加大服务器的压力。为了整体整洁、精简,特将import部分省去。接下来随便采取一种方式进行测试。,通过以下两个组合使用完成。提示:在最后放了封装类。
2023-07-12 01:00:00
381
原创 避免接口多次调用
ExpiringMap 的Key可以存储session、uid、ip等唯一值(这里可以和前端沟通设置值),value进行设置在规定时间内可访问次数。ConcurrentHashMap 的Key部分存储接口名,Value部分存储ExpiringMap。拦截所有接口进行统一处理。
2023-07-10 21:45:00
201
原创 【Java】HashMap和HashSet的区别
其根本原因是HashSet内部是存储到HashMap中,add方法是存入到HashMap的key,而value只是一个new Object;我经常会背的一句是HashMap不允许有重复的键,可以允许有重复的值。HashSet不允许有重复元素。好记性不如烂笔头,特将Collection中的HashMap和HashSet的区别记录一下。对于Map Set的HashMap , HashSet。ArrayList相比Map,Set应该更为熟悉。
2022-12-12 23:30:00
338
原创 【Java】 FileChannel ,Buffer介绍
position 表示当前有效数据的指针位置,limit表示数据有效的范围上限,mark是position指针的标记作用,capacity是整个buffer的大小。从源码案例部分可以看到 , buf 保存了一个数据magic,然后输入流读取该管道,通过buf.flip反转缓冲区,最后out输出流将buf内容写出。在Buffer的flip方法中,我们可以看到,它的底层实现是由limit,position,mark三个部分组成。因为java没有指针的概念,因此这三个或许就是Buffer的实现核心。
2022-12-09 22:37:22
233
原创 【Java】PipedWriter 和 PipedReader的简单实验
翻看Thread的时候无意间看见了Peped管道,于是便好奇如何使用。废话不多说,直接先看简单实例输出结果在这里我们可以看出来在为未加锁的情况下,PipedReader 和PipedWriter都进入了执行状态,并且out等待系统输入( System.in.read() ),in则是等待out (PipedWriter)的write写入之后输出(Sout…)。
2022-12-07 23:39:44
165
原创 【Java】读写的新方式!Files类-JDK11的新产物
读写文件,可以通过Files.readString() / Files.writeString()同时,删除文件也可以使用Files.delete()
2022-12-01 23:45:00
318
原创 【Java】快速切换JDK版本
A项目需要使用JDK8进行开发,而B项目使用的JDK11甚至使用的是JDK17。如果每次都在 我的电脑 -》。-》 修改环境变量 ,可能会有点麻木。好记性不如烂笔头,将快速切换JDK的方式记录在我的小仓库。在项目开发的过程中我们也许会遇到这样的情况,以上命令可以将JAVA_HOME的值快速替换。因此,这里我写了一个批处理进行自动配置。其中原理很简单,简单说明一下。
2022-11-24 22:31:09
506
原创 【Java】设计模式之模板方法模式
简而言之就是一套算法可以适用于多个类,则进行的步骤汇总,让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。
2022-11-23 22:58:55
123
原创 【Java】设计模式之适配器模式
在生活中充电器我们都用过,去国外出差可能会发现我们的充电器可能需要再套一层转换器才可以使用,而这个转换器就是我们今天要说的适配器模式–Adapter。
2022-11-21 22:18:20
263
原创 【Java】synchronized的使用
即将过年了,又要到疯狂的抢票环节,每个人通过手机进入app或者网页端进行抢票,若某列车一共火车票2000张,网友们纷纷同一时间购入,排除服务器故障压力,如何控制火车票不会多卖出?
2022-11-20 18:26:00
130
原创 【Java】线程的了解与创建
线程是一个操作系统中最小的运算调度单位。实际上它被包含在进程中,一个进程可以有很多个线程。线程没有属于自己的虚拟空间,也因此在同一个进程中的多个线程共享资源。
2022-11-20 17:59:14
87
原创 【Java】了解序列化 - 接口Serializable
Serializable接口是启用其序列化功能的接口。实现java.io.Serializable 接口的类是可序列化的。没有实现此接口的类将不能使它们的任意状态被序列化或逆序列化。
2022-11-18 06:30:00
756
原创 【Quarkus】基于Quarkus的注解@Lock进行读写锁的案例说明
读写锁(Readers-Writer Lock)顾名思义就是读锁写锁,读锁允许多个线程同时获得,因为读操作本身是线程安全的,多个线程的读取操作不存在破坏数据的情况。而写锁则是互斥锁(不然就会发生本文说到的情况),不允许多个线程同时获得写锁。写操作和读操作也是互斥的。Java的并发就含有读写锁ReadWriteLock。在多线程场景中,如果某个对象处于改变状态,可以用写锁加锁,这样所有做读操作对象的线程,在获取读锁时就会block住,直到写锁释放。
2022-11-17 06:30:00
826
原创 【Quarkus】像子弹一样飞的启动速度之入门案例
Quarkus是专为无服务器应用程序交付而设计的一个全栈Kubernetes原生Java框架。它与流行的 Java 框架、标准和库(例如 Eclipse MicroProfile 和 Spring、Apache Kafka、Hibernate、Camel 等)一起使用。Quarkus 是一个新兴的Java开发平台,特点时响应式、云原生、高性能、低延时等等Quarkus 已经逐步完善,可以应用于生产。Quarkus基本也可以做到不需多么复杂的配置就可部署。
2022-11-16 08:00:00
439
原创 【Java】Robot使得朋友无时无刻感受到来自你的关心
朋友的短信都没有回复给惹生气了,这个时候就要开启怒怼模式让她感受到你的真诚,那是否可以利用Robot帮助我“真诚的道歉”呢?来个99+的道歉消息多么真诚!
2022-11-15 00:15:00
200
原创 【Java】用Java挑战别踩白块无尽模式
相信大家都玩过“别再踩白块了”,但是有些极限手速也就只能在某站某音才能看到了,有没有尝试过自己来挑战!当然也许可以使用Java辅助,在学习过程中娱乐消闲一下Java的Robot类也许可以给你带来灵感。
2022-11-14 00:45:00
711
原创 【Java】for、forEach,Iterator在ArrayList、LinkedList上的性能比较
你知道在哪种情况下遍历大量数据时 for循环要比forEach、Iterator差很多吗?本文通过简单的数据测试,得出结论
2022-11-10 03:00:00
1288
原创 【Docker】 在Docker上安装GitLab完成CI/CD 持续集成、持续交付和持续部署前期准备工作
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。
2022-11-09 02:30:00
557
原创 【Docker】 搭配GitLab-Runner完成CI/CD 持续集成、持续交付和持续部署
使用GitLab-Runner进行持续集成部署,在GitLab上进行自动化测试
2022-11-07 23:18:32
599
原创 【Docker】Docker 常用命令
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
2022-11-06 10:38:14
278
graalvm-ce-java17-windows-amd64-22.3.0 资源包
2022-12-07
面对多个JDK的情况进行快速切换
2022-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人