JAVA
文章平均质量分 77
JAVA相关
码鹿的笔记
落魄码农的学习笔记
展开
-
设计模式——装饰器模式(Decorator Pattern)+ Spring相关源码
别名:包装模式(Wrapper Pattern)类型:结构型模式。目的:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责额外功能。原创 2023-10-27 11:09:14 · 1296 阅读 · 2 评论 -
[RPC] Motan快速开始
Motan是一套高性能、易于使用的分布式远程服务调用(RPC)框架。原创 2023-10-24 10:51:03 · 964 阅读 · 2 评论 -
Jasypt加解密、信息脱敏
Jasypt是一个Java库,它允许开发人员以最小的努力为他/她的项目添加基本的加密功能,而无需深入了解密码学的工作原理。基于标准的高安全性加密技术,适用于单向和双向加密。加密密码,文本,数字,二进制文件…完美地与 Hibernate 集成。适合集成到 Spring项目中,也可以完美地与 Spring Security集成。用于加密应用程序(即数据源)配置的集成功能。多处理器/多核系统中高性能加密的特定功能。开放 API 以与任何 JCE 提供程序一起使用。…等等。原创 2023-10-24 01:37:36 · 302 阅读 · 0 评论 -
JWT——jjwt使用
使用 JWT 的人可以随意定义这些声明( 可以自己声明一些有效信息如用户的id,name等,但是不要设置一些敏感信息,如密码 )。但是为了避免冲突,应该在 JWT注册表中定义它们,或者将它们定义为包含抗冲突名称空间的 URI。这样可以简化用户在不同应用程序之间的登录流程,提高用户体验。对于已签名的Token,这些信息虽然受到保护,不会被篡改,但任何人都可以阅读。这些是创建用于在同意使用它们的各方之间共享信息的习惯声明,既不是注册声明,也不是公开声明( 私人声明是提供者和消费者所共同定义的声明 )。原创 2023-10-23 00:15:00 · 637 阅读 · 0 评论 -
[Java]Redission入门使用
Redission是一个Java实现的分布式缓存和分布式对象存储框架,它提供了许多分布式数据结构和服务,如列表、集合、队列、映射、位图、HyperLogLog、Geospatial索引等。它支持Redis协议和JCache API,并提供了许多功能,如实时统计、Pub/Sub、Lua脚本编写等,使得应用程序可以更加方便地使用和管理分布式数据。同时也具有高性能、高可靠性和可扩展性等优势。基于高性能异步和无锁的Java Redis Client 和Netty。原创 2023-10-21 00:15:00 · 812 阅读 · 0 评论 -
[Java]订单超时自动取消——RocketMQ实现+SpringBoot项目
SpringBoot项目,RocketMQ实现订单超时自动取消。原创 2023-10-20 00:15:00 · 2047 阅读 · 0 评论 -
[MQ]Win平台RocketMQ安装启动
Windown 安装启动RocketMQ原创 2023-10-17 13:01:29 · 658 阅读 · 0 评论 -
[Java]线上监控诊断工具Arathas,入门使用
通常,本地开发环境无法访问生产环境。 如果在生产环境中遇到问题,则无法使用 IDE 远程调试。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。开发人员可以尝试在测试环境或者预发环境中复现生产环境中的问题。但是,某些问题无法在不同的环境中轻松复现,甚至在重新启动后就消失了。Arthas 旨在解决这些问题。开发人员可以在线解决生产问题。无需 JVM 重启,无需代码更改。 Arthas 作为观察者永远不会暂停正在运行的线程。原创 2023-10-19 00:15:00 · 408 阅读 · 0 评论 -
[Java]0.1+0.2不等于0.3 !!一分钱问题与解决方案
原因很简单,计算机存储和计算数组都是用二进制,而大部分小数转二进制的时候,就丢失精度了。0.1、0.2、0.3这些小数在,计算机不可能存储无限循环小数,所以只能截取一部分,导致本身失去精度。计算机再用这些有误差的小数进行计算,那误差就更大了。原创 2023-10-18 00:15:00 · 501 阅读 · 0 评论 -
[Springboot]安全框架Spring Security使用
Spring Security安全服务框架,Springboot使用Spring Security。原创 2023-10-16 01:15:51 · 501 阅读 · 0 评论 -
国外JAVA相关学习网站
国外相关学习网站Tutorialspoint、dzone、stackoverflow、coderanch等等...原创 2023-10-15 03:47:36 · 976 阅读 · 2 评论 -
[Spring]Thymeleaf——XML/XHTML/HTML5模板引擎
Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。原创 2023-10-15 00:15:00 · 348 阅读 · 0 评论 -
[Java]SPI扩展功能
Java SPI(Service Provider Interface)是Java官方提供的一种服务发现机制。它允许在运行时动态地加载实现特定接口的类,而不需要在代码中显式地指定该类,从而实现解耦和灵活性。原创 2023-10-14 00:30:00 · 298 阅读 · 0 评论 -
[Java]注释——注释真的需要么?
有些人认为只要方法名起得好,就不用写注释。 你写了注释,甚至还有一些人觉得你low。原创 2023-10-12 08:50:07 · 141 阅读 · 0 评论 -
[Java] 重写equals为什么要重写hashcode方法?
假设我们可能会遇到两个对象,它们的属性都是一样。 而我们需要上 要认为这两对象是同一个,但是在JAVA上它们两是不同的对象,使用equals时就会返回false。原创 2023-10-12 07:36:39 · 199 阅读 · 0 评论 -
Seata四种事务模式
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。原创 2023-10-08 02:59:42 · 726 阅读 · 0 评论 -
JAVA垃圾回收算法
该算法分为两个阶段,原创 2023-10-07 23:03:04 · 168 阅读 · 0 评论 -
RocketMQ架构设计
服务器会为每个消息创建索引(哈希索引),应用可以通过 topic、key 来查询这条消息内容,以及消息被谁消费。如果一个消费者消费某条消息出现异常,RocketMQ 会将该消息重新发送到该消费者一定次数(默认为16次)后。每个消息在业务层面的唯一标识码要设置到 keys 字段,方便将来定位消息丢失问题。由于每个 Topic 的消息不是连续的,读取CommitLog是随机读。由于是哈希索引,请务必保证key尽可能唯一,这样可以避免潜在的哈希冲突。,从而保证该消息不会再次发送到该消费者进行消费。原创 2023-10-05 23:51:46 · 141 阅读 · 0 评论 -
【JVM】JMM (java memory model) JAVA内存模型
(1)不允许read和load、store和write操作之一单独出现(即不允许一个变量从主存读取了但是工作内存不接受,或者从工作内存发起会写了但是主存不接受的情况),以上两个操作必须按顺序执行,但没有保证必须连续执行,也就是说,read与load之间、store与write之间是可插入其他指令的。作用于工作内存的变量,把工作内存中的一个变量的值传送到主内存中,以便随后的write的操作。作用于主内存的变量,它把store操作从工作内存中一个变量的值传送到主内存的变量中。用于控制主内存和工作内存的交互。原创 2023-10-04 23:18:23 · 152 阅读 · 0 评论 -
JAVA面试知识点(2023更新中...)
JAVA,Spring、SpringMCV、SpringBoot、SpringCloud、MySQL、Redis、MQ、Rock额TMQ、Nacos、zookeeper原创 2023-09-29 22:58:22 · 79 阅读 · 0 评论 -
【JDK 5】JUC 线程池
4、判断是否达到最大线程数,未达到则创建未核心线程,若已达到最大线程,则执行拒绝策略。3、判断任务队列是否已满,未满就加入任务队列,满了则下一步;: 存活时间、当存在非核心线程且空闲时,超过存活时间就回收。2、判断核心线程是否已满。状态时,执行完terminated()之后,就会由。调用shutdown()时,线程池由。状态时,任务队列与线程无可执行任务时,,不接受新任务,不处理已有任务。,不接受新任务,处理已有任务。:核心线程数,最少的线程数量。,接受新任务,处理已有任务。状态时,线程无可执行任务时,原创 2023-09-26 00:08:31 · 43 阅读 · 0 评论 -
【JDK 5】JUC 同步类 限流:Semaphore、CountdownLatch、CyclicBarrier
作用: 访问线程达到指定数量时,执行await之后的代码。原创 2023-09-25 23:44:22 · 77 阅读 · 0 评论 -
【JDK 8】JUC Atomic 累加器 (待更新)
在下,同一时间会所以。原创 2023-09-25 23:37:29 · 51 阅读 · 0 评论 -
【JDK 5】JUC Atomic 原子类
【代码】【JDK 5】JUC Atomic 原子类。原创 2023-09-25 23:24:08 · 46 阅读 · 0 评论 -
【JDK 16】Record
定义record 类名 (T1 t1 , T2 t2 , T3 t3) { //逻辑代码 }record User (String id , String name , int age ){ //逻辑代码 }使用User user = new User("10010", "码鹿鸭", -99);//打印: User[id=10010, name=码鹿鸭, age=-99]可以像其他类一样自定义方法,但不能修改实例属性。原创 2023-09-25 23:14:01 · 118 阅读 · 0 评论 -
【JDK 17】密封类 sealed、permits、non-sealed
限制类的继承实现, 只允许指定的子类去继承。原创 2023-09-25 22:10:10 · 515 阅读 · 0 评论 -
【JDK 8】Lambda表达式 ()->{}
定义只有一个抽象方法的接口,这叫函数式接口、SAM接口(Single Abstract Method interfaces)超过一个抽象方法的接口编译器无法推导,因为编译器不知道你要实现的是哪个接口。但是可以有非抽象方法,比如:default方法default void 默认实现方法(){System.out.println("默认实现方法");原创 2023-09-25 21:54:23 · 98 阅读 · 0 评论 -
ThreadLoal
在Spring项目中Dao层中装配的Connection肯定是线程安全的,其解决方案就是采用ThreadLocal方法,当每个请求线程使用Connection的时候, 都会从ThreadLocal获取一次,如果为null,说明没有进行过数据库连接,连接后存入ThreadLocal中,如此一来,每一个请求线程都保存有一份自己的Connection。在Spring的Web项目中,我们通常会将业务分为Controller层,Service层,Dao层, 我们都知道。功能:负责保存数据。新增、删除也是如此。原创 2023-09-23 21:19:14 · 43 阅读 · 0 评论 -
【JDK 5】JUC 线程池
4、判断是否达到最大线程数,未达到则创建未核心线程,若已达到最大线程,则执行拒绝策略。3、判断任务队列是否已满,未满就加入任务队列,满了则下一步;: 存活时间、当存在非核心线程且空闲时,超过存活时间就回收。状态时,执行完terminated()之后,就会由。调用shutdownNow()时,线程池由。状态时,任务队列与线程无可执行任务时,,不接受新任务,不处理已有任务。,不接受新任务,处理已有任务。:核心线程数,最少的线程数量。,接受新任务,处理已有任务。状态时,线程无可执行任务时,线程池的初始化状态是。原创 2023-09-23 11:12:33 · 50 阅读 · 0 评论