随笔分类 - Java
大叔也学学java,跟跟风...
摘要:[回到目录](https://www.cnblogs.com/lori/p/3896484.html) # 概述 委派模式(Delegate Pattern)又叫作委托模式,是一种面向对象的设计模式,允许对象组合实现与继承相同的代码重用。它的基本作用就是负责任务的调用和分配,是一种特殊的静态代理模式
阅读全文
摘要:[回到目录](https://www.cnblogs.com/lori/p/3896484.html) # 概述 命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而允许我们根据不同的请求将客户端参数化,并且能够将请求排队或记录请求日志、支持撤销操作等。该模式
阅读全文
摘要:[回到目录](https://www.cnblogs.com/lori/p/3896484.html) # 责任链模式 它是一种设计模块,主要将操作流程与具体操作解耦,让每个操作都可以设置自己的操作流程,这对于工作流应用是一个不错的选择! 下面是官方标准的定义:责任链模式是一种设计模式。在责任链模式
阅读全文
摘要:# 起因 我们在写代码时,有时间代码过高,尤其是stream流的时间,可能有多个map,filter,sort组成,这样我们更希望看到的是一种可读性更好的风格 * 我的代码是这样的 的存储空间。 2. `byte` 类型:
阅读全文
摘要:状态机,包括了状态和动作,某个**状态**下,只能执行某些**动作**,如果**动作**不匹配,状态是不会进行变更了,这样就保护了我们状态字段的准备性,不能随意改变,必须按着我们**设计的规则**进行状态的轮转。 # Stateless实现的状态机 1. **Stateless**:Stateles
阅读全文
摘要:# 概念 在Java中,`CountDownLatch`是一个线程同步的辅助类,用于等待其他线程完成操作。如果`CountDownLatch`实例被丢失或无法访问,可能会导致无法正常使用该对象。这可能会导致等待线程永远处于等待状态,无法继续执行。 如果意外丢失了`CountDownLatch`对象,
阅读全文
摘要:在Java中,可重入锁(Reentrant Lock)是一种同步机制,允许线程在持有锁的情况下再次获取该锁,而不会被自己所持有的锁所阻塞。也就是说,一个线程可以多次获得同一个锁,而不会出现死锁的情况。 可重入锁在多线程编程中非常有用,它允许线程在访问共享资源时多次获取锁,而不会引发死锁问题。当一个线
阅读全文
摘要:Javassist是一个开源的Java字节码操作库,它提供了一组简单而强大的API,用于在运行时修改和生成Java字节码。Javassist的名称是"Java Programming Assistant"的缩写,它的目标是简化对字节码的操作,使开发人员能够更轻松地实现动态代码生成和修改。 Javas
阅读全文
摘要:ASM(全称为"Objectweb ASM")是一个用于分析和转换Java字节码的框架。它允许您以程序化的方式读取、修改和生成Java类文件,而无需直接操作Java源代码。ASM提供了强大而灵活的工具,使您能够对字节码进行细粒度的操作,包括修改现有类、生成新的类以及在类加载时对字节码进行增强。 AS
阅读全文
摘要:二进制补码(Binary Two's Complement)是一种表示有符号整数的方法,在计算机中广泛使用。它是通过对正数取反加一得到负数的表示方式。 在二进制补码表示中,一个固定位数的整数由固定数量的二进制位表示,其中最高位被用作符号位。对于N位的二进制补码表示,最高位(最左侧的位)为符号位,0表
阅读全文
摘要:# Header基础知识 HTTP 头部(HTTP Header)是在 HTTP 请求和响应中用于传递附加信息的部分。它由一个或多个字段组成,每个字段由字段名和字段值组成,中间用冒号分隔。 HTTP 头部在请求和响应中都扮演着重要的角色,用于传递关于消息的元数据和其他相关信息。以下是一些常见的 HT
阅读全文
摘要:`Comparable` 接口的 `compareTo` 方法的升序或降序取决于实现该接口的类的具体实现。按照惯例,`compareTo` 方法应该返回负数、零或正数来指示当前对象是小于、等于还是大于传入的对象。具体来说: - 如果 `this` 对象小于传入的对象,则 `compareTo` 应该
阅读全文
摘要:确保密码的安全性是非常重要的,以下是几种常见的方法来提高密码的安全性: 1. 使用加密传输:在密码提交到后端之前,确保使用安全的加密协议(如HTTPS)来加密数据传输,以防止密码被中间人攻击窃取。 2. 密码哈希:在后端接收到密码后,使用密码哈希算法(如SHA-256)对密码进行哈希处理,将密码转换
阅读全文
摘要:Spring Javaformat是Spring团队开发的一款基于Google Java Format的代码格式化工具,可以帮助Java开发者自动化进行代码格式化,提高代码质量,降低代码维护成本。 Spring Javaformat可以自定义配置文件,支持大量的代码风格配置选项,满足不同项目和团队的
阅读全文
摘要:# JGroups概念 在 JGroups 中,集群(cluster)是一个由多个节点组成的逻辑实体,节点可以通过一个共享的集群名称来进行连接和通信。这个集群名称可以在配置中指定或在运行时动态创建。 JGroups 提供了多种方式来创建集群,并使节点能够加入到相同的集群中。下面是一些常见的方式: 1
阅读全文
摘要:在 Java 中,没有直接支持无符号整数的数据类型。Java 的基本数据类型(如 int、long、short、byte)都是带符号的,即它们可以表示正数和负数。 > .net中每种整型都有对应的无符号类型,它不会把取值范围分成正负两个区间,只在正整数范围内取值 然而,你可以使用 Java 中的较大
阅读全文
摘要:日期类型的参数在从前端通过url参数传递到后端时,它会被进行格式化,如果格式化失败会出现400的错误,像日期格式默认会使用yyyy/MM/dd的格式,如果希望自己去个性化配置,我们可以通过实现WebMvcConfigurer接口的addFormatters方法来完成。 # java.time.Loc
阅读全文
摘要:# 超轻量级 DynamicTableNameInnerInterceptor是mybatis-plug的一个拦截器插件,可以自己定义需要拦截的表单,然后对它进行加工,这时mybatis-plus就会把SQL代码的表名加上你的这个装饰。 # 封装的思想 我们通常把mybatis做成一个包,公司其它同
阅读全文
摘要:# 原因 当mysql数据库单表大于1千万以后,查询的性能就不能保证了,我们必须考虑分库,分表的方案了,还好,sharding-jdbc可以很优雅的与springboot对接,完成对mysql的分库和分表。 # 依赖整理 > 为了不影响其它小容量的表,所有添加了动态数据源,只对需要分库分表的进行配置
阅读全文