java
文章平均质量分 50
夕秋一梦
莫失莫忘
展开
-
关于nginx容器日志按天保存的配置
nginx容器日志按天保存的配置原创 2022-06-29 09:22:00 · 3483 阅读 · 1 评论 -
mac安装openjdk并配置idea
项目中使用jdk8,在mac中安装非常简便,使用命令即可安装:brew install openjdk@8安装好以后配置下环境变量,安装结束会有提示。在idea中如果配置jdk的时候,指向的是openjdk的安装目录,像这样:就会报错:一开始百思不得其解,后来发现mac下的不太一样,需要指定到安装目录下,libexec/openjdk.jdk才可以...原创 2021-06-21 20:34:42 · 2054 阅读 · 2 评论 -
IntelliJ IDEA 查看类的继承关系
查看选定类的所有父类:Show Diagram 是以新标签页的形式打开类图。Show Diagram Popup 是以弹窗的形式打开类图。这种形式只能看到父类,看不到子类。看父类和子类:这里能看到继承的父类和子类关系。...原创 2021-04-09 10:36:42 · 301 阅读 · 0 评论 -
@RequestParam接收多文件参数名不对不抛异常解决办法
问题:@RequestParam注解在接收多文件时,如果参数名称不对,并不会抛异常,影响业务。原因:查看@RequestParam注解的实现,跟进源码查看,大致的调用流程如下(为节省篇幅,忽略了一些代码)// org\springframework\web\method\support\InvocableHandlerMethod.invokeForRequest,解析参数值并调用方法获取返回值。public Object invokeForRequest(NativeWebReques..原创 2021-04-06 17:39:57 · 1131 阅读 · 0 评论 -
springboot 动态指定 context path
在写pythonweb的时候,由于python的灵活性,可以使用变量作为路由地址。springboot 也支持使用变量指定 context path,方法如下:设置一个属性,取变量就可以达到动态指定 context path。原创 2021-02-01 10:24:04 · 1476 阅读 · 2 评论 -
Java8 stream toMap 解决 key 冲突
目录问题:复现问题:问题原因:解决办法总结:问题:在使用 stream 的 toMap方法时,假设其中存在重复的key,如果不做任何处理,会抛异常:java.lang.IllegalStateException: Duplicate key复现问题:构建模拟数据代码如下 // 构建模拟数据 String[] data = new String[]{"a", "b", "c", "d"}; List<HashMa原创 2021-01-06 12:42:01 · 4810 阅读 · 3 评论 -
java-docker 配置使用方法
docker连接方式 docker 是一个本地化的软件,默认不提供通信端口访问形式。如果需要连接docker,则需要修改配置,重启docker服务。 java版的docker客户端 java版的docker客户端地址。在该项目 /etc/certs 目录下有一篇配置docker的文档,为了安全连接,一般都是yi...原创 2020-12-21 21:18:39 · 773 阅读 · 0 评论 -
Java位运算和几个使用场景解析
说明:本文介绍的位运算符不包含移位运算符,移位运算符在另一篇文章目录Java位运算符位与运算符 &位或运算符 |位非运算符 ~位异或运算符 ^位运算符使用实例分析判断奇偶数取余运算判断一个数是不是2的幂hashmap的tableSizeFor方法求相反数求绝对值交换两个变量(不引入第三个变量)判断两个数正负号是否相同求两个数的平均数求两个数的最大值求两个数的最小值 Java位运算符 位与运算符 &..原创 2020-12-04 17:47:42 · 2858 阅读 · 3 评论 -
Java中的移位运算符
左移运算符 << 运算规则:丢弃左边(高位)指定位数,右边(低位)补0。 实例:定义一个 int 类型数字,int intValue = 12345678,那么这个数字在二进制中的形式如下: 插入图片。。。 int intValue = 12345678;// 以下两个方法都可以打印出二进制形式,不过高位0已被舍弃System.out.println(Integer.toString(intValue, 2));System.out.println(Inte...原创 2020-12-02 14:48:36 · 4882 阅读 · 2 评论 -
负数在计算机中的编码形式
整理了下关于原码、反码、补码的相关内容,以及负数的表示和加法运算。原码、反码和补码:原码:机器码,原本的表示法反码:除符号位(最高位)外取反补码:反码加1,正数的补码反码都是原码本身手动求补码:先写出该负数的相反数(正数),再将该正数的二进制写出来,对二进制取反,最后加1。二进制:计算机底层的存储都是以二进制形式存储,最小单位为bit,存放一位二进制,0或1,计算机处理数据最基本单位是字节(Byte,简称B),8个二进制位为1个字节,即:1B = 8bit。java 基本数..原创 2020-11-24 16:16:54 · 5139 阅读 · 5 评论 -
java 数组转list后,修改元素报错 UnsupportedOperationException
java 数组转list后,修改元素报错:UnsupportedOperationException代码报错如下:数组转list使用的方法是:Arrays.asList(a)这个方法能将数组转为list,其实现为:从源码中可以看到,这个方法返回的并不是真正的ArrayList,而是Arrays类中自己的内部类ArrayList,此类并未实现任何修改元素的方法,这种实现方式是设计模式中适配器的体现,将接口进行了转换。而在它所继承的抽象类AbstractList 中,修改元素的方.原创 2020-07-07 19:41:48 · 438 阅读 · 0 评论 -
spring项目的jar包中读取classpath下的文件
在springboot项目resources文件夹下,加入一个其他类型的资源文件,比如一个test.txt文件,为实现类似启动加载,实现了CommandLineRunner 接口,这个接口是spring初始化完成后最后一个回调函数。新加的文件内容如下,pom文件打包使用的配置如下。在idea中运行正常。打为jar包,直接启动报错:由报错可知,找不到我加入的文件。这个情况是因为在jar包中,无法获取具体文件路径,只能通过spring提供的流的形式读取。修改为读取流的原创 2020-06-15 14:52:53 · 4959 阅读 · 3 评论 -
java执行系统命令
之前一直在用Process process = Runtime.getRuntime().exec(cmd);后来发现有的时候好像不那么好用,尝试使用下面的方式感觉更好用一些。import java.io.*;public class ProcessTest { public static void main(String[] args) { Stri...原创 2020-05-06 10:13:36 · 434 阅读 · 0 评论 -
springboot接口接收文件,并作为参数请求其他接口
遇到一个需要接收上传文件,并且转发到其他服务的一个需求。接收文件比较简单,但是对于转发有点迷惑。后多次调试后成功:public Object request(HttpServletRequest servletRequest){ String address = "http://localhost:8500"; HttpHeaders headers = ...原创 2020-01-20 17:32:17 · 5900 阅读 · 0 评论 -
记:复习java 8 stream 流式写法
今天花了几个小时复习了下 java 8的stream,许久不用,怕忘记,整理下常用知识。stream 与 lambda 结合真是有如猛虎添翼,大大提升了开发效率,可读性也提高,效率也有提升,所以还是推荐用lambda和stream,真的是优胜于传统for循环太多了。import java.util.*;import java.util.function.Function;import...原创 2019-12-05 17:21:47 · 2215 阅读 · 0 评论 -
记:maven编译报错问题
今天拉下来代码然后开始开发新功能,写完以后准备去测试下,首先maven编译一下,clean install,发现报错了:开始真把我整懵了,我用idea新建一个文件,然后在里面写代码,结果编译的时候maven告诉我这个文件头有错误。。。打开具体的日志查看,发现maven提示说在文件的第一个字符处,还有第10个字符处,有错误,那应该就是编码问题了。果然,用notepad打开文件后,...原创 2019-12-04 19:15:35 · 571 阅读 · 0 评论 -
用pyqt做了个读取系统基本信息的小工具,其中遇到的问题总结
做的比较简陋,只是简单读取系统开机时间,cpu和内存的基本信息。原来是个控制台程序,用pyinstaller打包后是个cmd窗口感觉不是很好,只后用qt做了界面化,其中遇到过两个问题,一是打包后程序运行都会打开一个cmd控制台,看起来感觉不好,解决办法是:在打包的时候加上--noconsole参数。二是程序打包运行的时候总是报错no module named 'PyQt5.sip',在pychar...原创 2018-07-23 10:34:54 · 251 阅读 · 0 评论 -
关于AES在linux上解密失败的解决办法
在windows系统上加密解密都没问题,到了linux服务器上解密失败。错误信息:javax.crypto.BadPaddingException: Given final block not properly padded查阅资料得知,问题是出在生成key的方法上:SecureRandom 实现完全随操作系统本身的內部状态,在windows上生成的key每次都是一样的,在linux上生成...原创 2019-02-25 18:54:01 · 1076 阅读 · 0 评论 -
关于mybatis批量更新操作
开始的时候一直以为用分号分隔,就像普通sql语句一样执行。后来发现不行,应该用case when语法:update user set name = case id when id_1 then 'a' when id_2 then 'b' end, pwd = case id when id_1 then 'c' ...原创 2019-02-26 17:46:33 · 258 阅读 · 0 评论 -
spring在控制层接收前台参数时,会自动将string转为list
如题,在接口调用时候发现接收类型是一个list,但是传参传字符串即可,多个用逗号分隔,这样的话省去了我们很多的处理。简单研究了下源码,跟到了处理的关键点。GenericConversionService这个类在convert方法中调用了ConversionUtils.invokeConverter方法接着调用接口GenericConverter的convert...原创 2019-03-27 11:24:56 · 3414 阅读 · 0 评论 -
mybatis 的choose标签在可能为false的条件下,在choose前面加条件会报错
这样写是没有问题的,把条件加到choose标签后面,如果加在前面就会提示,part alwa false condition not allow,猜想可能是mybatis避免choose条件不成立设置的。...原创 2019-04-01 18:21:14 · 728 阅读 · 0 评论 -
stringutils的几个判断方法总结
总结的方法为apache的字符串工具类:org.apache.commons.lang3.StringUtils先说明空的两个容易混淆的概念,empty代表是空或者null,指的是:null或者"",引号中没有任何内容视为空。blank在empty基础上增强,除了以上内容,空字符串也会被视为空,例如" "。下面说各个方法:isEmpty:当null和""的时候认...原创 2019-08-02 17:01:30 · 1318 阅读 · 0 评论 -
谈谈自己对java泛型 T、K、V、E、?的理解
开始的时候只明白泛型是限定类型,泛型的优点就是不需要coder再强制转换类型,而是在编译的时候检查类型,类型转换也变成了自动的和隐式的。但是对于T、K、V、E、?这样的符号还不是理解的很深刻,今天研读了一篇文章,恍然大悟,遂记录下。先大致解释下T、K、V、E、?几个字符意思(约定俗成的意思):T:表示一个具体的java类型,type的首字母。 K,V:一般指代键值对,即key,val...原创 2019-08-27 15:07:19 · 905 阅读 · 0 评论 -
自己写的用aspose.words将word转pdf过程及一些注意问题
项目需求要提供合同打印导出功能,打印是前端同学用js做的,我不关心,导出即提供下载功能,开始思路是直接输出流到pdf,老大给了个方案:freemarker和itext结合使用,另一个同事负责开发,基本做出来了,问题是这个方案有严苛的要求,对字体等方面要求,比如宋体不识别,要替换为SimSun,空白占位符不识别等等问题,有些局限。所以我采用了另一种方案,曲线救国,先输出流到doc文...原创 2018-07-08 15:19:15 · 32474 阅读 · 9 评论