Java
开发老张
这个作者很懒,什么都没留下…
展开
-
Redis 缓存穿透解决
当使用 Redis 作为数据库的前置缓存时,可能会出现查询的参数并不在数据库中此字段的值中,这时候 Redis 中肯定查询不到此值,就会直接去查询数据库,造成数据库压力过大;原创 2023-04-25 18:09:53 · 376 阅读 · 1 评论 -
Java反射获取属性名、属性类型、属性值
反射、泛型、JDBC 等基础结合起来很多时候可以使代码功能更加强大,适合更多的场景使用。原创 2023-04-14 11:00:36 · 4465 阅读 · 1 评论 -
构造器设计模式
在类中定义一个静态内部类,在这个静态内部类中定义和外部类一样的属性并提供返回内部类的一些列方法,通过这些方法给属性赋值,在内部类的构造函数中还可以同时赋属性的默认值,最后通过内部类的 build 方法将内部对象传递给外部类的私有构造方法来实例化外部类并返回给调用者;同时还可以在外部类中提供一个静态的 builder 方法,直接实例化一个内部的 Builder 类返回,这样使用时候就可以直接 build 了,不用再 new 外部类了;也可以在类上通过 lombok 的 @Builder 注解实现构造器模式;原创 2023-04-13 19:08:13 · 142 阅读 · 0 评论 -
模板方法设计模式
通过抽象类定义共有业务流程,其中的差异化部分由抽象方法在实例化时候创建子类时完成。原创 2023-04-11 16:56:35 · 84 阅读 · 0 评论 -
Java 反射和泛型
通过反射和泛型实例化对象,并给对象中的属性赋值。实例化对象,并使用三种方式给对象中的属性赋值。原创 2023-04-07 11:44:52 · 374 阅读 · 0 评论 -
Kafka 宕机,调整内存设置
突然发现 Flink 连接不上 Kafka 了,经检查 s1 服务器上的 Kafka 宕了,尝试用命令启动 Kafka:还是启动不了。原创 2023-03-29 15:28:21 · 947 阅读 · 0 评论 -
FlinkCDC 实时监控 MySQL
通过 FlinkCDC 实现 MySQL 数据库、表的实时变化监控,这里只把变化打印了出来,后面会实现如何再写入其他 MySQL 库中;原创 2023-03-21 17:11:34 · 3687 阅读 · 1 评论 -
Redis 的发布/订阅模式
Redis 的发布/订阅模式较 Kafka 等简单很多;Redis 通过 Channal 实现发布-订阅,订阅者可以对频道进行订阅(不存在的频道将创建频道),发布者向频道发送的消息会自动推送到订阅者端,先发送的消息,后订阅的订阅者是收不到之前的消息的;原创 2023-03-21 16:48:34 · 386 阅读 · 0 评论 -
替换Jar包中文件,重打Jar包
有些老的 Jar 包在执行时发现其中依赖的有些 jar 版本过老,但调用 jar 中的方法等都是一致的,又没有此 jar 的源文件时可以解压缩 jar 包后替换其中文件;本例替换文件为:将 mysql-connector-java-5.1.47.jar 替换为 mysql-connector-java-8.0.11.jar。原创 2022-09-07 15:52:00 · 2244 阅读 · 0 评论 -
Activiti7 代码创建流程定义及生成bpmn及svg文件
Activiti7 代码创建流程定义及生成bpmn及svg文件,通过代码定义 Activiti7 流程定义,反向生成 bpmn 流程配置文件及 svg 图片,包含项目基本架构 SpringBoot 架构配置及代码,包含 SpringSecurity 代码;原创 2022-08-22 15:20:25 · 3894 阅读 · 0 评论 -
IDEA 项目中设置 Sources Resources 等文件夹
在 IDEA 中指定哪个是源代码 Sources 文件夹,哪个是 Resources 资源文件夹,否则在新建 Java 类时不能建 Java 类型,且编译时不知道如何处理------项目名称右键 -- Open Module Settings在下面这个页面,先鼠标选择好文件夹,然后点击上面的对应按钮,就会添加到右侧对应值上,在右侧可以进行编辑、删除等操作...原创 2020-04-16 14:04:24 · 12685 阅读 · 0 评论 -
volatile 关键字
volatile 关键字(volatile:易变的,反复无常的)声明此变量值是不稳定的,每次使用它都到主存中进行读取,而且当成员变量发生变化时,强迫线程将变化值回写到共享内存中。且不会将该变量上的操作与其他内存操作一起重排序。volatile 是一种 synchronized 的简化,他并不会执行加锁操作,所以不会阻塞执行线程。volatile 只确保每线程执行时从主内存拿数据,而原创 2017-03-02 17:10:44 · 176 阅读 · 0 评论 -
Java类初始化顺序
1)如果有父类,先初始化父类2)类只被初始化一次,即类中的静态变量及静态代码块只在第一次加载时执行一次3)类第一次初始化时先初始化静态变量,执行静态代码块4)执行完静态代码后先初始化成员变量,然后执行构造器。例:package com.zsoft.test;public class ClassLoadTest { public static void main(Str原创 2017-02-23 10:34:16 · 219 阅读 · 0 评论 -
IKSegmenter 分词
使用 IKSegmenter 进行字符串的分词操作package com.zsoft.test;import java.io.StringReader;import org.wltea.analyzer.core.IKSegmenter;import org.wltea.analyzer.core.Lexeme;/** * 测试 IK Analyzer 分词架构中的独立使用分词原创 2017-03-03 20:50:21 · 4737 阅读 · 5 评论 -
String 的 equals 和 ==
String 在 Java 中并非9种基本类型之一判断2个 Object 是否相等时通常用 == 或者 equals 来判断,== 判断的是内存地址,equals 判断的是内部的值String 的 equals 实现时先判断是不是 ==,如果是同一个地址的 Object 直接返回相等,如果地址不同时,会先判断被比较的对象是否是一个String,如果不是直接返回不等,如果是就判断字符串长度,原创 2017-02-25 17:12:36 · 253 阅读 · 0 评论 -
Java 中 Comparable 和 Comparator 区别
Comparable 和 Comparator 都可以对一个List中的值进行排序write by 开发老张Comparable:是一个接口,被比较类要实现 Comparable 接口升序排列:当前值大于比较值返回 -1,相等返回0,小于返回 1使用 Collections.sort(Object) 实现方法排序Comparator:单独定义的比较器,比较器类要原创 2017-02-27 10:16:41 · 172 阅读 · 0 评论 -
String StringBuffer StringBuilder 异同
String 非Java 9 种基本类型,其是只读字符串,即 String 引用的字符串内容是不能被改变的StringBuffer 和 StringBuilder 相同点:与 String 不同,其中的字符串值是可以进行修改的,因此在修改字符串时比 String 效率高很多两个类中的方法相同StringBuffer 和 StringBuilder 不同点:StringBuild原创 2017-02-27 10:31:40 · 225 阅读 · 0 评论 -
mybatis 报cglib错误
mybatis项目运行时报如下错误:Caused by: java.lang.IllegalStateException: Cannot enable lazy loading because CGLIB is not available. Add CGLIB to your classpath.解决:添加 cglib 包:dependency>grou原创 2017-07-14 16:29:51 · 762 阅读 · 0 评论 -
Eclipse 中设置 XML 的 dtd 文件
在 XML 文件中可以指定 dtd 文件,以进行输入提示和输入校验有些XML中的 dtd 文件路径已经失效,因此在 Eclipse 中会出现一个叹号解决:下载到这个dtd文件,如我这次遇到的 mybatis-generator-config_1_0.dtd 文件。Eclipse - 偏好设置 - XML - XML Catalog右侧点击原创 2017-07-24 08:41:12 · 705 阅读 · 0 评论 -
Maven 父子工程创建 in Eclipse
Maven 父子工程创建 in Eclipsewrite by 开发老张(http://blog.csdn.net/zhy0414)父工程: File - New - Project Maven Project 勾选 Create a simple project(skip archetype selection)原创 2017-01-14 22:12:21 · 821 阅读 · 0 评论