Java
文章平均质量分 65
Java
杨林伟
像火箭科学家一样思考!
展开
-
Scala快速入门(一篇就够了)
Scala快速入门原创 2024-05-30 00:38:23 · 1975 阅读 · 0 评论 -
Arthas使用与源码分析
Arthas简单使用与源码分析原创 2024-02-01 20:00:00 · 1490 阅读 · 0 评论 -
一文理解Janino:动态编译Java代码的神器
动态编译Java代码神器原创 2024-01-22 20:00:00 · 1990 阅读 · 1 评论 -
Github排名前10的Java Decompiler
Github排名前10的Java Decompiler原创 2024-01-02 21:38:42 · 1676 阅读 · 0 评论 -
深度剖析slf4j源码
深度剖析slf4j源码原创 2023-10-08 20:00:00 · 317 阅读 · 0 评论 -
浅谈logback日志架构
logback日志框架原创 2023-10-07 21:00:00 · 218 阅读 · 0 评论 -
Java日志框架整理
Java常用日志框架总结原创 2023-10-07 20:00:00 · 221 阅读 · 0 评论 -
深入理解Java GSS(含kerberos认证及在hadoop、flink案例场景举例)
深入理解Java GSS,实现kerberos认证的方式,以及在hadoop和flink场景的使用原创 2023-07-07 23:30:00 · 1758 阅读 · 1 评论 -
IDEA远程调试k8s容器里面的Java应用
IDEA远程调试k8s容器里面的Java应用原创 2023-02-14 20:00:00 · 2603 阅读 · 1 评论 -
解决URLClassLoader使用addURL方法失效的问题
解决URLClassLoader使用addURL方法失效的问题原创 2022-11-24 09:55:26 · 404 阅读 · 0 评论 -
替换jar包文件
替换jar包中的文件命令原创 2022-11-01 22:41:16 · 417 阅读 · 0 评论 -
如何获取k8s容器里运行的jar包
获取k8s容器里运行的jar包的两种方式原创 2022-09-14 15:19:31 · 2787 阅读 · 3 评论 -
Java反编译生成java文件
详细讲解Java反编译jar包、class等文件原创 2022-09-09 15:05:33 · 1475 阅读 · 0 评论 -
Java日期格式
Java日期格式总结原创 2022-09-05 19:23:05 · 12790 阅读 · 0 评论 -
Java解析jar包获取MainClass或属性配置
Java解析jar包获取MainClass或属性配置原创 2022-08-29 14:05:07 · 332 阅读 · 0 评论 -
解决:No appenders could be found for logger
log4j:WARN No appenders could be found for logger (dao.hsqlmanager).log4j:WARN Please initialize the log4j system properly.log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.原创 2022-08-18 11:52:00 · 9013 阅读 · 0 评论 -
NoClassDefFoundError问题排查
如果依赖了,打包后,运行时还有此错误,就需要解压Jar包,看看/BOOT-INF/lib目录,有依赖没有此jar包,如果没有,就是打包有问题了。一般到这里就可以解决NoClassDefFoundError这个错误了,下面来看看特殊的情况。,全局搜索,可以看到该类在flink-table-common-1.13.6.jar这个包。查看pom文件,看看有没有依赖,如果没有,添加该依赖。如果有,依然提示此问题,则可能是代码问题了。本地跑是没有报错的,打包后运行就报错了。,所以就报这个错误了!最后,问题就解决了。.原创 2022-08-13 18:01:05 · 9488 阅读 · 0 评论 -
Java本地远程断点调试(实战记录)
IDEA利用jdpa协议本地远程调试服务器上的程序原创 2022-08-10 17:49:11 · 1119 阅读 · 0 评论 -
Apache Calcite入门
Apache Calcite是一款开源SQL解析工具, 可以将各种SQL语句解析成抽象语法术, 之后通过操作AST就可以把SQL中所要表达的算法与关系体现在具体代码之中,将来会有越来越多的数据处理引擎采用Calcite作为SQL解析工具。...原创 2022-08-05 18:25:52 · 2131 阅读 · 0 评论 -
修复fastjson的java.lang.IllegalArgumentException: Comparison method violates its general contract!
Comparison method violates its general contract!at com.bm.fastjson.JSON.toJSONString(JSON.java:793) at com.bm.fastjson.JSON.toJSONString(JSON.java:731) at com.bm.fastjson.JSON.toJSONString(JSON.java:688)原创 2022-08-01 10:54:49 · 680 阅读 · 0 评论 -
Java实现XML格式化
Java实现XML格式化工具类原创 2022-07-28 14:38:56 · 5976 阅读 · 1 评论 -
解决无法读取META-INF.services里面定义的类
可能解决方式之一:里面的文件名对应的接口名称,后缀加上即可原创 2022-06-30 10:07:30 · 1433 阅读 · 0 评论 -
protobuf与json
参考以下两遍文章有助于理解:protobuf详解:https://mp.weixin.qq.com/s/O2KqODATuoJXmBfO1clKGwProtoBuf与JSON的比较:https://mp.weixin.qq.com/s/9DeHSOE5D-7oZaJHuo9pXw原创 2022-05-12 18:24:40 · 784 阅读 · 0 评论 -
JSONPath 解析 JSON
文章目录01 引言02 JSONPath2.1 操作符2.2 函数2.3 过滤器运算符03 操作示例04 文末01 引言JsonPath是一种简单的方法来提取给定JSON文档的部分内容。 JsonPath有许多编程语言,如Javascript,Python和PHP,Java。JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容。下面我把官网介绍的每个表达式用代码实现,可以更直观的知道该怎么用它。GitHub:https://github原创 2022-02-25 16:50:55 · 860 阅读 · 0 评论 -
Java本地远程服务器debug调试
文章目录01 前言02 远程调试2.1 使用特定JVM参数运行服务端代码2.2 本地连接远程服务器debug端口2.2.1 配置2.2.2 本地IDEA启动debug模式2.2.3 设置断点,开始调试03 远程调试原理01 前言对于分布式系统的调试不知道大家有什么好的方法。在知道远程调试这个方法之前就是在代码中打各种log,然后重新部署,上线,调试,这样比较费时,有什么更好的办法呢?就是本文讲的远程调试。本文参考资料:《使用IDEA进行远程调试》《datax(24):远程调试datax》0原创 2022-02-11 17:41:00 · 2990 阅读 · 0 评论 -
Guava Lists工具类
文章目录01 概述02 Lists工具类03 文末01 概述Guava 是 Google 开源的一个 Java 工具库,里面有很多工具类,本文要讲的是里面的Lists工具类。注意,使用Guava工具类库,必须先添加依赖:<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>28.0&原创 2022-01-25 11:32:40 · 10053 阅读 · 0 评论 -
Java8 Optional详细解读
文章目录01 概述02 Optional详细用法2.1 Optional下的方法2.1.1 ofNullable下的方法2.1.1.2 orElseThrow下的方法2.2 Optional完整实例03 文末01 概述Optional类主要是为了解决NPE(NullPointerException)空指针异常而产生的,在我看来它是 Java 实现函数式编程的一种很好的方式。举个列子看看它的简单用法:List<Order> list = Optional.ofNullable(orderL原创 2022-01-25 11:05:48 · 1847 阅读 · 0 评论 -
Java实现树的格式化打印以及返回前端json树
本文主要讲hutool工具类打印树的用法。注意,项目需要引入hutool工具类,pom依赖:<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.4</version></dependency>step1. 首先准备数据(Test.json):[原创 2021-12-01 16:00:24 · 992 阅读 · 0 评论 -
velocity语法小结
文章目录1. 注释2. 定义变量3. 条件语句4. 循环标签5. Velocity 中的宏6. debug语法标签7. 不存在的变量显示为空白8. 本地文件引入9. 调用类方法1. 注释单行注释 :## 内容多行注释:#* 内容 *#文档注释:#**内容*#2. 定义变量可以使用#set 来定义变量 ,举个例子:① 模板内容:#set($word="zhuoqianmingyue")${word}#$word#set($surname="Lee")#set($name=原创 2021-07-28 17:42:02 · 735 阅读 · 0 评论 -
JVM常用命令整理
文章目录1. 概述2. 命令详解2.1 jps2.2 jstat2.2.1 实例(-class)2.2.2 实例(-compiler)2.2.3 实例(-gc)2.2.4 实例(-gccapacity)2.2.5 实例(-gcutil)2.2.6 实例(-gccause)2.2.7 实例(-gcnew)2.2.8 实例(--gcnewcapacity)2.2.9 实例(--gcold)2.2.10 实例(-gcoldcapacity)2.3 jmap2.3.1 实例(-dump)2.3.2 实例(-fina原创 2021-04-20 11:46:48 · 2604 阅读 · 2 评论 -
Java8 stream collect Map集合
有时候使用Java8 新特性stream流特性是,需要返回Map集合,实现例子如下:Map<Long,String> personIdNameMap = personList.stream().collect(Collectors.toMap(person ->preson.getId(),person ->preson.getName()));上述的例子,是把personList(人员集合)提取内容,生成Map<人员id,人员名字>。解析如下:第一个参数pe原创 2020-12-08 17:33:20 · 3506 阅读 · 0 评论 -
Java8 stream流特性总结(超详细)
文章目录1. 什么是Stream2. Stream常用案例2.1 串行流和并行流2.1.1 串行流2.1.3 并行流2.2 聚合操作2.2.1 filter 过滤2.2.2 map 抽取内容生成集合2.2.3 sorted 排序2.2.4 limit 限制查询条目数2.2.5 distinct 去重2.2.6 skip 跳过元素2.2.7 mapTo 统计2.2.8 collect 规约操作3. 结语1. 什么是Stream本文的代码已上传到Github,有兴趣的小伙伴可以下载看看:https://g原创 2020-12-02 15:40:15 · 3323 阅读 · 0 评论 -
Mybatis引用静态常量或者枚举类型
语法规则:${@path$subClass@Attr.getValueMethod}例子:<select id="listModelsToProTps" resultType="com.voyageone.ecerp.model.wms.WmsBtShipmentModel"> SELECT * from wms_bt_shipment${partition} WHERE port =${@com.voyageone.ecerp.domain.constant.wm原创 2020-10-28 10:08:24 · 1282 阅读 · 0 评论 -
Java计算当前时间处于某段时间内的第几周、第几个月
直接上代码(注意这里使用了Hutool里面的DateUtil工具类):import cn.hutool.core.date.DateTime;import cn.hutool.core.date.DateUtil;import java.text.ParseException;import java.util.Date;public class DateUtilPlus { public static Integer getWeek(String beginDateStr, Str原创 2020-10-20 15:57:14 · 1963 阅读 · 0 评论 -
Hutool超级工具类
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率。Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。文档地址:https://hutool.cn/docs/#/主要有如下功能:克隆支持泛型的克隆接口和克隆类类型转换类型转换工具类-Convert自定义类型转换-ConverterRegistry日期时间概述日期时间工具-DateUtil日原创 2020-09-22 18:00:17 · 1461 阅读 · 0 评论 -
微服务启动jar包脚本
restart.shjarName=包名.jarcp $jarName $jarName.baksh shutdown.sh sh startup.sh $jarNamestartup.sh:jarName=$1nohup java \-Xms256m \-Xmx256m \-jar $jarName --spring.profiles.active=prod --server.port=10086 &shutdown.sh :jarName=$1PID=$(ps -e原创 2020-09-21 16:41:00 · 1134 阅读 · 0 评论 -
动态读取nacos配置工具类
首先贴上Nacos配置:test: maps: key1: ylw key2: 666可以看到配置里面一个maps集合,下面演示如何动态的去读取key1和key2的数据,首先贴上工具类:@Component@Data//这里使用了lombok,如果项目没有引入lombok,直接对maps进行gette和setter@ConfigurationProperties(prefix = "test")public class NacosConfig { //注意这里的map原创 2020-09-18 17:23:05 · 2861 阅读 · 0 评论 -
nohub启动java项目
命令:nohup java -jar xxx.jar > nohup.out &使用nohup 启动xxx的java项目,日志输出到nohup.out文件。原创 2020-08-10 15:07:54 · 1949 阅读 · 0 评论 -
CPU100% 问题排查
01 前言版权声明:本文为CSDN博主「Μr.ηobοdy」的原创文章原文链接:https://blog.csdn.net/chenlixiao007/article/details/105999034cpu是时分(time division)的,操作系统里有很多线程,每个线程的运行时间由cpu决定,cpu会分给每个线程一个时间片,时间片是一个很短的时间长度,如果在时间片内,线程一直占有,则是100%;我们应该意识到,cpu运行速度很快(主频非常高),除非密集型耗费cpu的运算,其它类型任务都会在小于转载 2020-06-29 17:01:16 · 1524 阅读 · 0 评论 -
Java8新特性列举
一、接口内允许添加默认实现的方法二、Lambda 表达式三、函数式接口 Functional Interface四、便捷的引用类的构造器及方法五、Lambda 访问外部变量及接口默认方法5.1 访问局部变量5.2 访问成员变量和静态变量5.3 访问接口的默认方法六、内置的函数式接口6.1 Predicate 断言6.2 Function6.3 Supplier 生产者6.4 Consumer 消费者6.5 Comparator七、Optional八、Streams 流原创 2020-06-26 22:31:23 · 524 阅读 · 0 评论