- 博客(154)
- 资源 (42)
- 收藏
- 关注
原创 Linux脚本(if、else、case、test中括号)
shell中没有不能匹配个数,类似于正则[0-9]{3,7}这种。逻辑运算or(||、-o) and(&&、-a)如果if和then同行,得加分号(😉。可以使用test来代替中括号([])
2024-11-04 09:19:02 283
原创 PostgreSQL安装用户、角色与权限管理
记得使用-d指定数据库,默认的超级用户和创建的数据库都是postgres,如果只修改了超级用户名称,psql的时候记得使用-d指定数据库,否则默认连接的就是和用户名同名的数据库。psql命令非常方便,提供了很多默认选项,如果没有修改过默认配置,用起来非常方便顺手,但是如果修改了默认配置,就一定要多注意。PostgreSQL中用户与角色基本是一个东西,唯一区别是角色没有登录权限,用户有登录权限,可以登录。所以,我们涉及权限的时候,可以把权限分配给角色,在为用户指定不同的角色(一个用户可以有多个角色)
2024-10-30 09:06:11 601
原创 VScode任务配置详解(task.json与launch.json)
vscode非常强大,有很多可以自定义的东西,但是也不容易上手,例如搭建一个新环境是如何配置运行程序。本篇文章就将详细说明vscode的如何配置任务来完成编译等操作,如何配置launch来debug。tasks.json:配置和管理自动化任务,如编译、构建、运行脚本…launch.json:配置调试器,定义调试会话的启动和运行参数。
2024-10-24 09:40:36 1387 1
原创 Go环境搭建(vscode调试)
如果出现go.tools.intall not found 可以重启一下VScode,确保path中go的bin目录配置正确。推荐使用moudle模式,这样三方包就在$GOPATH/pkg/mod目录下,可以允许有多个不同的版本,多个项目都可以共享。这就有点像Java的包管理模式了,不用每个项目都去处理GOPTH,也不需要每个项目都去下载相同的三方包了。go get和go intall下载的三方包就会安装到GOPATH中。我们下载的免安装版本,直接解压就可以。
2024-10-21 09:10:51 600
原创 Git核心概念图例与最常用内容操作(reset、diff、restore、stash、reflog、cherry-pick)
本文将介绍Git几个核心概念,和最常用的几个内容操作命令:首先我们来看一下几个非常重要的前置概念我们执行上面命令就会生成一个.git目录【工作区】add就到【暂存区】commit就到【本地仓库】objects目录中保存的是add到暂存区和commit到本地仓库的文件HEAD是一个文本文件,你们内容是HEAD当前指向的分支:ref: refs/heads/feature-view我们首先来看一下我们最常用的reset操作。reset是重置,他重置的是commit我们最最常用的reset的2个操作:res
2024-10-17 16:15:09 1094
原创 浏览器服务端文件下载控制(安全阻止、文件浏览器打开还是下载行为控制)
随着浏览器的发展,有很多安全方面的限制,对我们的文件下载行为产生了很大的影响。在JavaScript下载文件(简单模式、跨域问题、文件压缩)我们已经介绍了一些下载问题。文件下载安全设置浏览器和服务端如何控制文件是下载还是打开。
2024-10-11 15:09:41 1144
原创 JavaScript下载文件(简单模式、跨域问题、文件压缩)
相信各位开发朋友都遇到过下载的文件的需求,有的非常简单,基本链接的形式就可以。有的就比较复杂,涉及跨域和压缩文件,例如,文件在OSS中,有的oss不支持压缩文件,要下10个文件就得弹10个下载出来。业务老师多半是没有办法接受这种情况,怎么处理呢?这就涉及到跨域获取文件并压缩文件了。本文会介绍一下简单下载和下载OSS文件并压缩。
2024-10-10 16:56:39 1341
原创 Java GC:GC算法、GC回收器、GC日志
阶段2回收了部分空间,但是比例还是相当低的,不过G1已经知道各个Region的回收情况了。因此可以优先回收垃圾最多的Region,这些Region既包含了新生代,也包含了老年代。被清理的Region内的存活对象会被移动到其他Region,避免内存碎片。我们可以通过下面的代码和vm参数来简单看一下垃圾回收。这次回收,新生代的大小会根据实际运行情况调整。G1回收阶段2:并发标记周期。G1回收阶段3:混合回收。
2024-09-27 11:08:12 958
原创 Linux top命令详解与重点内容说明
top命令非常强大,也非常复杂,很难面面俱到,也没有必要,这篇文章的目的是介绍重点,授人以渔,希望帮助朋友们以后遇到文中没有介绍的知识点也能举一反三。通常模式下,load average统计的是所有task队列的数量,所有,需要除以逻辑CPU的数量,如果这个值大于等于3就说明负载偏高。例如:load average的值为6,逻辑cpu的核心数为4,6/4=1.5,小于3,说明cpu负载正常,瓶颈不在CPU上。buffer缓冲区,通常是文件的meta信息,cache是缓存,通常是内存页page。
2024-09-20 15:44:56 924
原创 关于【禁止new对象时在for循环内定义申明变量】
不知道是谁最先提出了一个不要将变量定义在循环内。然后我们在代码扫描中有一项是:【禁止new对象时在for循环内定义申明变量】我也好奇为什么不能?是影响了性能?还是影响了内存?还是影响了垃圾回收?变量定义在for循环内,每次都要为变量引用分配空间,效率低变量定义在for循环内,有引用,不利于内存回收真的如此吗?我们先从代码分析一下。综上所述,【禁止new对象时在for循环内定义申明变量】并没有什么意义。让变量作用域变大,存在被无意引用的风险更容易产生变量名冲突可读性变差。
2024-09-14 16:32:36 849
原创 JVM字节码与局部变量表
x:可以是i(int、byte、char、short、boolean类型)、l(long类型)、f(float类型)、d(double类型)、a(引用类型)x:可以是i(int、byte、char、short、boolean类型)、l(long类型)、f(float类型)、d(double类型)、a(引用类型)每个线程的帧栈是独立的,每个线程中的方法调用会产生栈帧,栈帧中保存着方法执行的信息,例如局部变量表。局部变量表是一个数组,大小在编译时就确定了,方法运行期间是不会改变局部变量表的大小。
2024-09-13 16:57:28 1462
原创 Camunda如何通过外部任务与其他系统自动交互
Camunda组件与服务与基本操作Camunda ScriptTask SendTask ReceiveTask操作Camunda中强大的监听服务Camunda最基本、最常用的表梳理及如何通过服务定位到相关表这一篇我们介绍一下Camunda的外部任务。很多时候,任务并不是业务老师来完成,而是外部系统来完成。这种情况,如何交互呢?提供接口吗?Camunda提供了更好的方式,外部服务:只需要在流程图中创建一个服务节点,配置为External就可以。
2024-07-14 10:01:55 1385
原创 Camunda最基本、最常用的表梳理及如何通过服务定位到相关表
文章目录简介Camunda服务根据流程说明Camunda最基本常用表流程部署实例启动实例启动之后的表数据完成任务之后表数据有哪些变化通知接受消息节点如何通过服务定位相关表常用网关表简介资源相关表运行时相关表用户、组相关表历史数据相关表通用数据相关表具体表说明act_ge_bytearray(二进制数据表)act_ge_property(流程引擎配置表)act_ge_schema_log(数据库脚本执行日志表)act_hi_actinst(历史的活动实例表)act_hi_comment(历史流程审批意见表)a
2024-07-13 21:35:57 604
原创 Threejs环境、透视相机、坐标系、光源
透视相机就是和我们生活中的相机一样,和眼睛看到的也差不多,近大远小,距离相机近的物体显示的大,距离相机远的物体显示的小。//创建透视投影相机,视角45度,画幅比例 宽比高,近平面距离0.1,远平面1000。相机是一个非常重要的概念,我们最终看到的都是摄像机看到的场景中物体。// 设置坐标位置,否则相机和物体默认都在坐标原点啥都看不见。// 设置坐标位置,否则相机和物体默认都在坐标原点啥都看不见。// 设置坐标位置,否则相机和物体默认都在坐标原点啥都看不见。//渲染循环,以每秒60次的频率来绘制场景。
2024-07-06 17:24:00 832
原创 RestTemplate使用详解
对于http请求之前一直用apache的httpclient,已经习惯了,特别是使用fluent之后,更加方便了。所以一直没有怎么太过关注RestTemplate,最近才发现在Spring环境中使用RestTemplate还是很方便。特别是处理带有多重泛型的复杂类型时,httpclient需要一层一层的自己处理,RestTemplate只需要指定类型参数ParameterizedTypeReference就能完美解决。
2024-05-29 14:22:41 1015
原创 Java对象大小计算与MAT内存泄露分析
String内存大小 = value内存大小16字节 + 对象头12字节 + int 4字节(hash) + 数组value引用4字节 + 对齐4字节= 40字节。MemoryCustomObject对象头12字节 + s引用4字节 + i变量4字节 = 20字节 + 4字节padding = 24字节。对象头12字节 + 3个引用 * 4字节 + 1个int * 4字节 = 28字节 + 4字节padding = 32字节。
2024-05-23 14:54:50 1143
原创 基于Spring EL表达式处理业务表达式
SpringEL是Spring表达式,功能非常强大。我们可以能在@Value、@Cachable、自定义注解中的应用EL表达式,当然这些不是本文的重点。本文的重点是如何基于SpringEL来定制业务表达式,以便于简化我们工作,减少自己去处理解析表达式的复杂逻辑。一个简单的场景:例如,业务希望文件名是动态的,根据实际的年、月、日、季以及其他的业务数据来生成。因为有非常多的文件类型,业务希望通过表达式根据实际业务数据生成最终文件名。
2024-05-02 16:22:41 1110 1
原创 JavaAgent的agent与attach
javaagent是什么?从名字agent也可以看出,是一种代理。javaagent用来做什么?本质上是对class的一种增强,用来实现一些通用功能,例如链路追踪等。和AOP有什么区别?AOP和javaagent本质上都是通过修改class来实现额外功能,对代码逻辑本身无侵入,在运行时侵入。AOP通常是项目内的代理增强,通常是增强业务逻辑,例如:公用授权检查逻辑。
2024-04-22 16:37:59 733
原创 Linux find命令详解与实际使用
exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给-exec执行,系统传递给-exec的命令长度有限制,如果find的结果比较多,可能会出现溢出错误。这种情况就可以使用xargs命令,find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,它会先处理最先获取的一部分文件,然后处理下一批,直到全部处理完成。另外,在部分系统中-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,可能导致进程过多,xargs命令则只有一个进程。
2024-04-09 15:49:03 1073
原创 Java锁与Redisson锁的坑
当线程没有获取到锁,去执行unlock时,就会出现IllegalMonitorStateException异常。习惯了,只检查是否在finally中,看起来没啥问题,运行一下似乎也没有问题。我们只需要做一点点改动就能在运行中看出问题,就是获取锁之后,让它多运行一会儿。只需要判断一下是否获取锁,获取到锁的时候才去unlock就可以。我们先看一下Java的锁,再来继续redisson这个问题。同样2个问题,下面的方式使用锁是否有问题?如果有问题,是什么问题呢?如果有问题,是什么问题?现在,看出问题了吗?
2024-03-26 13:13:05 677
原创 jacoco使用示例与常用配置说明
有时候,对于一些重要的项目或者重点类,我们希望重点测试,但是我们怎么评估测试质量呢?这个时候,或许就需要jacoco了。接下来,我们就来了解一下jacoco的基本概念与使用。以及在某些条件不允许的情况下,我们如何跳过某些类,再结合mvn参数,让我们的单元测试报告看起来不那么乱。jacoco会分析:指令(C0)、分支(C1)、行、方法、类型和循环复杂度的覆盖率jacoco结果显示:如果上面内容比较抽象,可以看看下面具体实例。
2024-03-23 16:56:56 3065
原创 文件编码探测与原理、Java实现与构造让探测器失效文件
文章目录构造让探测器失效的文件文件编码探测原理探测器Java实现版本测试构造让探测器失效的文件我们用vscode打开一个文本文件的时候,默认会使用UTF-8编码,所以当文件不是UTF-8编码的时候就会乱码。但是,好像notepad–这类编辑器就似乎总是能以正确的编码打开文本文件。为什么呢?notepad–这类编辑器真的总能以正确编码打开文件不出现乱码吗?答案是否定的,不信,用下面的代码生成一个文件试一试,notepad–类编辑器是否能正确打开。 @Testpublic void write(
2024-03-21 17:21:16 383
原创 CIDR网络地址、广播地址、网段区间计算说明与计算工具
最大的主机地址是广播地址-1:10101100000100010000001111111110(172.17.3.254)网络位数,数子网掩码前面1的个数:22,因此网络号可以写成:172.17.0.0/22,很多网策支持这样配置。相信很多朋友长时间不看也忘了,所以,这里记录一下,并提供了一个工具类用来计算相关值。我的IPv4地址是:172.17.1.6,子网掩码是:255.255.252.0。有了最小的主机地址和最大的主机地址,现在再看第一个问题,是不是清晰了。上面的问题你能回答几个?
2024-03-15 16:56:55 1325
原创 jasypt配置敏感信息加密解密及其原理
比如我们要定义一个使用RSA加密方式的,我们只需要实现StringEncryptor接口就可以。// 更好的方式是在RsaStringEncryptor直接指定@Component("jasyptStringEncryptor") // new的方式不会直接处理EnvironmentAware return new RsaStringEncryptor();} }
2024-02-29 13:50:35 1585
原创 Maven打包常用插件介绍与问题分析
很多时候我们不太会关心maven是如何打包的,因为maven的确做得很棒,提供了很多默认的设置。就算需要一些不同的定制,基本上也能找到插件拷贝一下就好了。但是,当打包遇到一些比较特殊的情况,或者要分析一下jar包,我们就需要对Maven打包有多一点的了解。本文将介绍Maven常见的打包插件,及其打包的情况,相信能帮你多了解一点Maven的打包操作。maven-jar-plugin:默认使用,打依赖包啥都不用配置,打可执行包要配置main-class,它只能打依赖和可执行分离包。
2024-02-04 14:44:21 1538 1
原创 Camunda ScriptTask SendTask ReceiveTask操作
前面我们已经介绍了Camunda最基本的操作和常见的监听器,如果不熟悉Camunda,可以先看一下,方便搭建环境,亲手测试。有例如,一个节点必须依赖另一个节点完成,就可以在节点前添加一个接收任务节点,等其他节点完成之后,通过接收任务节点继续往下走。除了JavaScript,还可以使用Python、Groovy、Ruby等,得添加相关的依赖。然后通过executionId来通知接收消息的节点,不用等了,可以到下一个节点了。接收任务节点可以用来阻塞节点往下执行,比如等一个外部任务完成。
2024-02-01 14:43:17 1457
原创 Camunda中强大的监听服务
文章目录简介创建工程JavaDelegateTaskListenerExecutionListener部署发起流程CustomExecutionListener开始节点CustomExecutionListenerCustomJavaDelegateCustomExecutionListenerCustomTaskListener用户节点ExpressionDelegate Expression流程图简介Camunda预览了很多接口,以便于我们扩展,其中最重要的莫过于各种监听接口,本文就将接受三个最终常
2024-01-30 17:39:40 1007
原创 Camunda组件与服务与基本操作
BeforeAll@Test// 流程部署id//删除流程定义,如果该流程定义已有流程实例启动则删除不能删除@Test// 流程部署id// 级联删除流程定义,即使该流程有流程实例启动也可以删除。
2024-01-29 14:27:06 1138
原创 cocos添加节点事件的3种方式
其实,这种方式就是第1中的代码实现方式,手动在clickEvents添加了事件,而不是再cocos属性检查器中配置。点击事件Event的类型是:EventTouch(手机、浏览器手机模式)或者EventMouse(电脑)这种方式,就不需要在cocos中绑定了,只需要给button添加脚本组件即可。这样绑定,也可以捕获到单击和双击事件,双击事件会被当场2次单击。这样绑定,可以捕获到单击和双击事件,双击事件会被当场2次单击。但是没有办法自定义事件数据,事件的参数也是button本身。
2024-01-28 15:02:08 1209
原创 是时候将javax替换为Jakarta了
也可以直接使用druid</</</</try {// 设置统计的Web URL filterRegistrationBean . setUrlPatterns(List . of("/*"));// 设置排除的Web URL filterRegistrationBean . addInitParameter("exclusions" , "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");} }
2023-12-29 16:25:39 7500 3
原创 关于Java和JavaScript下载文件的小tip
最近遇到一个下载文件的需求,因为文件不在本系统,可以直接请求远程的加载接口,不想通过本系统的后端再转一次。于是就想通过前端JavaScript直接下载。下面介绍2种方式。
2023-12-29 15:05:17 797
原创 相信99%的朋友都没有注意到的数据库时间类型的问题
很多时候,程序运行起来没有问题,并不代表程序就精确,例如创建时间多一秒少一秒这种事情,很多时候是没有人注意到这个问题。当然,关于创建时间多一秒少一秒本身可能有不太重要,但是关于时间的查询,绝对就是一个比较严重的问题了。有时候数据特殊性导致很难发现多一条少一条很难发现,但是少一条数据可能就是非常严重的问题。本文,以MySQL和MyBatis为例,来说一下其中的关于时间的一些非常容易被忽略的小问题。
2023-12-15 14:42:16 945
原创 Oracle忘记所有密码怎么办
最近遇到一个Oracle的问题,密码要过期了,但是除了用户密码,其他密码都不知道了,修改不了密码怎么办呢?可以在安装目录下的database目录下查看自己对应的密码文件是啥,保持名字一样就可以。其中file是指密码文件,PWD是固定开头,orcl是实例名称。password设置的就是sys的密码。有的sys密码,其他的都好办了。
2023-12-01 11:36:23 859
原创 Spring事务粒度优化与传播机制
在Spring事务中,我们通常会为了控制事务粒度,会把它进行拆分,为了避免大事务执行太久,占用资源太多,导致资源利用率低的问题。我们曾经就遇到老系统因为大事务,把服务打死了。问题出在一个大事务中有一个Excel文件解析的操作,有用户上传的某个文件,有1百多万个空行数据。因为,这个事务一致不能结束,直接导致系统崩溃。但是要拆分事务,是一个麻烦的事情,要考虑事务传播机制。
2023-11-24 18:54:15 1089
原创 dom4j基本使用与XPath不生效处理
XPath表达式"/ns:definitions/ns:process"中的ns就是前缀,其中ns是自定义的,可以随便改和map中设置的一致即可。最可能是命名空间的问题,因为如果节点上有Namespace,那么XPath中就应该使用namespace的前缀。这种方式比较简单粗暴,但是去除xml中的命名空间的表达式需要兼容性好。使用非XPath方式,就得手动通过API去一层一层的查找。dom4j使用XPath的时候,发现不能获取到节点。上面的代码读到的就是空节点。
2023-11-20 09:38:56 349
原创 IDEA202301社区版本Tomcat插件不能用问题
需要自己手动安装,因为我用的是社区版本的,之前IDEA默认使用的Tomcat插件Tomcat and TomEE就不能用了。新版本很好,很强大,但还是有一些需要使用的,比如新版本的默认就移除了很多插件,比如Tomcat类的Java服务器插件。IDEA2023的RC版本已经发布了,想着老版本的IDEA对新版本的JDK支持不是很好,想着赶紧切新版本。因为,老项目还有直接用Tomcat,所以只能找其他插件了,Smart-tomcat就不错。
2023-03-24 13:07:07 1264 1
原创 网站服务需要哪些许可证
我们通常的网站备案叫ICP备案,如果网站是盈利性质,仅仅ICP备案是不够的,还需要ICP许可证。其实还涉及很多许可证,其中最常见的就是ICP许可证。之前一直以为网站只要备案就能提供服务了。
2023-01-31 13:57:51 246
effective java 中文版pdf和英文版pdf 两份
2016-11-01
svn客服端服务端套装
2020-12-21
hbase-helper.zip
2020-07-27
ip纯真数据库与解析工具类
2020-04-08
ip4国家ip段数据库(csv格式,操作和查看都非常方便)
2020-01-09
hive-win-bin.zip
2019-07-03
jdk8源码.zip
2019-06-27
jdk加密无政策限制jar包及示例
2019-01-09
windows-openssl安装包
2019-01-08
grunt学习资料
2017-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人