java8
狄龙疤
人生苦短,及时行乐
展开
-
输出数据库全部表的外键引用拓扑结构
这种结构还是不够直观,没法一下子看出哪些表未被任何其他表外键引用( 只有删除或清空未被任何其他表外键引用的表的数据时,才不会提示“删除失败,该表已被表xxx 外键引用” ),那么该如何展示才够直观呢,才能一下子看出来哪些表未被其他任何表引用呢?我们想到了树结构,即父id自关联的树结构,比如公司的部门树结构,删除叶子节点不会提示被引用,而删除父节点会提示被引用,无法删除,所以我们应该把被外键引用的表作为树的父节点,把未被任何其他表外键引用的表作为叶子节点。原创 2024-02-29 13:24:05 · 201 阅读 · 0 评论 -
手动实现 git 的 git diff 功能
这是 git diff 后的效果,感觉挺简单的,不就是 比较新旧版本,新增了就用 "+" 显示新加一行,删除了就用 "-" 显示删除一行,修改了一行就用 "-"、"+" 显示将旧版本中的该行干掉了并且新版本中增加了一行,即使用 "删除" + "新增" 操作代替 "修改" 操作。1. 最开始 index_old = index_new = 7,算法检测到新旧版本的第7行的内容相同( 后面我们就尽量用伪代码表示,就不说这么多啰里啰嗦的话了 ),即 lines_old[ 7] = lines_new[ 7]。原创 2023-11-24 16:11:40 · 1078 阅读 · 2 评论 -
java暴力回朔法解数独
【代码】java暴力回朔法解数独。原创 2023-10-20 11:24:27 · 598 阅读 · 0 评论 -
java代码实现将markdown层级标题转换成json树结构
【代码】java代码实现将markdown层级标题转换成json树结构。原创 2023-09-04 16:38:47 · 696 阅读 · 0 评论 -
java 中 Native.loadLibrary 不能加载 jar 包中库文件的解决方案
思路是工程启动后在 Native.loadLibrary 之前,将 jar 中 "BOOT-INF/classes/window_dll" 或者 "BOOT-INF/classes/linux_os" 中的 dll 或 os 库文件解压到外部磁盘目录中。windows环境: (HCNetSDK) Native.loadLibrary("E:\\xxx\\HCNetSDK.dll", HCNetSDK.class),原创 2022-10-12 14:12:44 · 7365 阅读 · 1 评论 -
生成可执行jar
打开 ServerInfoPrinter.jar 中的 META-INF/MANIFEST.MF 文件,在最后面添加一行"Main-Class: Boot"原创 2022-08-22 10:32:41 · 149 阅读 · 0 评论 -
maven踩坑之旅
交付给客户后,这些文件可能会暴漏我们的信息导致安全问题,如果我们只希望 .xml、.properties、.yml打进去该如何配置呢?原创 2022-07-04 17:28:53 · 120 阅读 · 0 评论 -
java实现超大数字的加法
package com.gwsp.authority.core.test;import java.util.ArrayList;import java.util.List;public class Test { public static void main(String[] args) { String num1 = "237462375687324783267235623746237568732478326723564238753847568347658734657.原创 2022-03-25 15:35:40 · 988 阅读 · 0 评论 -
skywalking基础环境搭建
readme.txt:skywalking控制台启动方式:执行 D:\install\java_group\apache-skywalking-apm-bin-es7\bin\startup.batskywalking控制台访问地址:http://127.0.0.1:8080( 端口可以在 D:\install\java_group\apache-skywalking-apm-bin-es7\webapp\webapp.yml中修改 server.port )start控制台.bat:D:..原创 2022-03-21 09:51:08 · 1418 阅读 · 0 评论 -
java图片压缩工具类
引入依赖:<dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.14</version></dependency>package com.goldwind.ipark.base;import cn.hutool.core.codec.B原创 2022-02-28 15:11:26 · 416 阅读 · 0 评论 -
springboot 工程启动闪退( Process finished with exit code 0 )如何快速定位错误?
springboot 工程启动后很快变出现“Process finished with exit code 0”,没有任何错误提示信息,执行“mvn install”也是 OK 的,让人捉摸不着头脑,可以尝试修改 pom.xml 中的配置,让执行“mvn install”的时候执行单元测试来暴露问题:注释掉上图中的配置,让“mvn install”的时候执行单元测试,执行结果:发现是 application.yml 中的问题:同样,如下代码:执行“mvn install”原创 2022-02-15 09:57:43 · 1207 阅读 · 0 评论 -
RestTemplate 踩坑之旅
1.慎用 RestTemplate.getForObject(url, JSONObject.class)( ps: JSONObject 用的是 fastjson)接口http://127.0.0.1:8190/test/mock对应 controoler 代码: @GetMapping( "/mock" ) public String mock(){ return "{\n" + " \"success\":true,\...原创 2021-08-18 10:20:53 · 267 阅读 · 0 评论 -
qlexpress踩坑之旅
1. qlexpress 表达式中不支持 +=,如 不支持 sum+=1,必须写成 sum=sum+1。2. qlexpress 表达式中不能用具体的类型接收自定义函数的返回值,比如一个自定义函数 TEST_FUNCTION 的返回值类型是 List<Map<String,Object>>,只能用 "Object result = TEST_FUNCTION()" 的方式接收返回值 result,用 "List<Map<String,Object>> re.原创 2021-08-06 18:12:40 · 1151 阅读 · 0 评论 -
怎么形象化的理解Java中的加入(join)线程?
今天看了以下join的用法,一头雾水,说什么“线程xxx.join()”这句代码写在哪个线程里,哪个线程就要等待线程xxx执行完之后再执行,不知道有什么用,事后一个无意间的需求使我感受到了该方法的强大,是什么呢?想必大家都会判断一个方法执行对长时间,无非是是得到起始的时间,进而得到时间差,可是如果是多线程情况下,该方法未必奏效,比如:public static void main(String[] args) { long t1 = System.currentTimeMillis原创 2021-08-05 13:46:49 · 79 阅读 · 0 评论 -
在看不懂源码的情况下,事先知道集合需要放置多少元素时,如何设置最优的集合初始容量
如果不想看源码,善用工具同样可以解决问题,图中黄框圈中的多选框默认是勾选的,取消勾选后,debug模式下查看查看集合结构时就可以看到开辟的底层数组的大小了。以 HashSet 举例,假设事先知道自始至终该集合一共需要添加 1 个元素,则可以用如下方式找到设置多大的初始容量是最优的:1. 首先不设置初始容量:发现执行完 "Set<String> names = new HashSet<String>()" 这句代码后,集合中的内部结构是这样的,红框中的部分表明此原创 2021-01-12 17:18:52 · 146 阅读 · 1 评论 -
一个导出 word 的 POI 工具类
import lombok.Getter;import org.apache.poi.xwpf.usermodel.*;import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;import java.math.BigInteger;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;.原创 2020-11-25 16:57:04 · 528 阅读 · 0 评论 -
为什么 java 操作数栈的最大深度在编译时期即可确定?
public class Demo{ public static void main(String[] args) { test(); } public static void test( ) { int a1 = 100; int a2 = 200; int a3 = 300; int a4 = 400; int a5 = 500; int a6 = 600; .原创 2020-11-13 16:10:10 · 997 阅读 · 1 评论 -
工作中使用 栈结构( stack ) 的例子汇总( 持续更新... )
1.QLExpress 中使用 stack 解决函数参数个数和参数类型合法性校验错误提示: 如果公式有问题,QLExpress 默认知识报错,并且是很没有规律的原始的错误信息,靠解析错误信息给页面提示不太可行,发现QLExpress 有一个获取表达式指令集合的 api,是以前缀表达式格式顺序存储的,即假设角标 i 处存储的是一个 两数相加的 函数指令,则 i-1、i-2处存储的就是改加法指令的两个参数( 如果表达式正确的话 ),只需要定义一个栈,然后遍历 该指令集合,遇到 操作数( 变量 ...原创 2020-10-29 17:26:16 · 625 阅读 · 0 评论 -
java 反射快慢测试以及如何优化
package test;public class Person { public void xxx(){ }}package test;public class Demo { public static void main(String[] args) throws Exception{ // 设置 testTime 是为了预热( 前几次测试运行本来就很慢,而且谁放在前面谁越慢 ) // 前几次 测试可以忽略 int.原创 2020-06-15 10:38:25 · 224 阅读 · 0 评论 -
自己动手模拟 java 集合流式操作
import java.util.ArrayList;import java.util.List;public class MyArrayList<T> extends ArrayList<T> { private List<MyFilter> myFilters = new ArrayList<>(); public M...原创 2020-04-24 16:56:46 · 143 阅读 · 0 评论