java
chushiyunen
这个作者很懒,什么都没留下…
展开
-
maven使用笔记(清空remote、update等)
maven使用笔记原创 2023-01-18 15:24:50 · 597 阅读 · 0 评论 -
AtomicBoolean的使用
AtomicBoolean原创 2022-07-11 15:20:31 · 857 阅读 · 0 评论 -
RoaringBitmap等工具类的使用,以及搜索算法
java自带的bitset只提供了基本的功能,不算很强大。所以实际开发中要借助其他类库,例如RoaringBitmap。RoaringBitmap在方法的丰富性上,以及性能上都有提高。maven引入第2个是roaringbitmap,但是一块贴上了啊。<dependency> <groupId>uk.gov.gchq.gaffer</groupId> <artifactId>bitmap-library</artifactId&g原创 2022-03-24 16:54:46 · 4251 阅读 · 0 评论 -
java自带bitset工具类
文章目录bitset使用例子java自带的bitset的缺点bitset的优点是节省空间,位运算非常方便等。bitset使用例子例如,最经典的多维度筛选,用数据库效率很低,但是bitset很容易。代码:public static void demo1(){// 张三 id 1 安卓 男// 李四 id 2 苹果 女// 王五 id 3 安卓 女 BitSet bitsAndroid = new BitSet(16); // 安卓原创 2022-03-24 16:16:05 · 2720 阅读 · 0 评论 -
程序员小灰2021年整理
漫画:什么是 “锦标赛排序” ?漫画:什么是“贪心算法”?如何求解“部分背包问题”?算法的本质是什么?程序员如何学好算法?数据结构大总结面试官问小灰:如何用程序判断质数?面试官问我:什么是 “伸展树” ?什么是树状数组?让这个12岁年轻人为你讲解如何快速算出一个数的n次方?面试官问我:什么是树堆(Treap)?漫画:什么是 “代理模式” ?漫画:什么是 “建造者模式” ?漫画:什么是 “原型模式” ?漫画设计模式:什么是 “装饰器模式” ?什么是设计模式?程序员如何学好设原创 2022-01-28 09:55:17 · 6643 阅读 · 0 评论 -
程序员小灰2020年整理
漫画:什么是字符串匹配算法?漫画:如何优化 “字符串匹配算法”?漫画:什么是KMP算法?漫画:什么是 “哈夫曼树” ?漫画:“哈夫曼编码” 是什么鬼?漫画:什么是红黑树?(整合版)漫画:什么是AVL树?(修订版)漫画:什么是 “跳表” ?漫画:如何螺旋遍历二维数组?(修订版)漫画算法题:两数之和与三数之和漫画:如何找到链表的倒数第n个结点?漫画:寻找股票买入卖出的最佳时机(整合版)漫画:什么是 “设计模式” ?漫画:设计模式中的 “观察者模式”漫画:设计模式之 “外观模式”漫画原创 2022-01-28 09:53:36 · 401 阅读 · 0 评论 -
程序员小灰2019年整理
漫画:寻找无序数组的第k大元素(修订版)漫画:如何将一个链表“逆序”?漫画:什么是加密算法?漫画:什么是 “图”?(修订版)漫画:深度优先遍历 和 广度优先遍历漫画:图的 “最短路径” 问题漫画:Dijkstra 算法的优化漫画:图的 “多源” 最短路径漫画:有趣的 “切蛋糕“ 问题漫画:什么是二分查找?(修订版)漫画:“旋转数组”中的二分查找漫画:什么是最小生成树?漫画:什么是选择排序?漫画:什么是插入排序?漫画:如何找到两个数组的中位数?(修订版)漫画:什么是旅行商问题?原创 2022-01-28 09:51:39 · 145 阅读 · 0 评论 -
程序员小灰2017年整理
漫画:什么是ConcurrentHashMap?漫画:高并发下的HashMap漫画:什么是HashMap?漫画:什么是红黑树?什么是AES算法?(整合版)漫画:什么是SHA系列算法?漫画:什么是MD5算法?漫画:如何破解MD5算法?漫画:什么是Base64算法?什么是A*寻路算法?漫画:什么是布隆算法?漫画:Bitmap算法 整合版漫画:什么是B-树?漫画:什么是B+树?漫画:什么是一致性哈希?漫画算法:如何判断链表有环?漫画算法:辗转相除法是什么鬼?漫画算法:找出缺失的整原创 2022-01-28 09:49:33 · 141 阅读 · 0 评论 -
程序员小灰2018年整理
比较喜欢小灰灰系列,在此整理下便于查看。漫画:什么是八皇后问题?漫画:什么是字典序算法?漫画:如何实现抢红包算法?漫画:什么是拜占庭将军问题?漫画:有趣的扔鸡蛋问题漫画:动态规划解决扔鸡蛋问题漫画:什么是冒泡排序?漫画:什么是鸡尾酒排序?(修订版)漫画:什么是快速排序?(完整版)漫画:什么是时间复杂度?漫画:什么是二叉堆?(修正版)漫画:什么是堆排序?漫画:什么是优先队列?漫画:什么是计数排序?漫画:什么是桶排序?漫画:如何用栈实现队列?漫画:什么是LRU算法?漫画:删去原创 2022-01-27 18:35:02 · 160 阅读 · 0 评论 -
mdc追踪日志
文章目录不使用mdc的写法mdc日志中设置模板基础写法线程的写法for循环写法remove()和clear()的区别为什么要clear()不使用mdc的写法代码:logger.info("查询请求开始,uuid:{}",uuid);但是这样写,每行日志都要拼接uuid,代码量大而且容易错。mdc本质上是使用ThreadLocal保存变量,要用的时候可以取出来。一般是和日志结合来使用。日志中设置模板log4j.properties 或 logback.xml 配置文件中的pattern模块原创 2022-01-25 17:20:12 · 910 阅读 · 0 评论 -
java判断当前操作系统类型
比较简单,网上相关代码也烂大街了,直接上代码。EPlatform 代码:public enum EPlatform { Any("any"), Linux("Linux"), Mac_OS("Mac OS"), Mac_OS_X("Mac OS X"), Windows("Windows"), OS2("OS/2"), Solaris("Solaris"), SunOS("SunOS"), MPEiX("MPE/iX"),原创 2022-01-24 16:36:49 · 927 阅读 · 0 评论 -
java执行shell脚本
文章目录场景解决方案其他多条命令的问题wget拿到的文件比实际的文件小场景公司服务器非窗口不能发版。 也就是不给登录服务器的高权限用户。那么怎么解决这个问题呢?解决方案为了方便处理问题,可以在服务器上启动个项目来执行脚本。原理: java的Process类可以运行命令。拿个网上用烂了的代码作为例子吧:public class RuntimeTest { private static Logger logger = LoggerFactory.getLogger(RuntimeTest原创 2022-01-21 17:46:27 · 4495 阅读 · 0 评论 -
maven拉取不到想要的包
场景maven想要引入这个依赖,结果发现怎么也拉不下来。解决方案用户目录.m2下对应的文件夹删除下。maven仓库对应的文件夹删除下。然后update项目重新拉取,发现还是没有下来。查看nexus远程仓库是否有这个包。 发现也有,真是怪了。最后发现,远程仓库多了个-com,所以包名就不对了。 修改下包名(或者修改好包的名字,重新上传下)。如果没有权限修改包,也可以把本地的jar包名,改为正确的,一样是可以的。...原创 2021-12-24 19:40:06 · 1748 阅读 · 0 评论 -
maven引入不期待的包的排查
场景打包之后,发现有多余的依赖,造成项目报错。解决方案1、先看看pom.xml中是否引入这个依赖。 发现没有。2、mvn dependency:tree命令查看依赖树,找到用到这个依赖的包。发现这个包里面也没有这个依赖。那么删除用户目录下的.m2下的对应包,再删除自定义maven仓库下的对应包,重新打包,发现还是有这个依赖。3、查看nexus远程仓库,看是否有2个同名的依赖包,发现没有。4、既然这个包没有,继续查看他的parent项目。 果然在他的parent项目里面找到了这个依赖。奇怪原创 2021-12-24 07:29:10 · 602 阅读 · 0 评论 -
https使用笔记
场景公司提供的服务,由http协议变为https协议。调用方问证书该怎么配置?解决方案其实这个问题问的就不对,是没有弄清http变为https,双方要做的工作。服务提供方1、申请https证书。2、在服务器配置(步骤略)。调用方1、修改请求的代码方法。结论:所以调用方根本不用关注证书,这个是服务提供方应该关注的。...原创 2021-11-29 17:39:23 · 78 阅读 · 0 评论 -
json设置字段名(如首字母大写)
首先json不只有一种工具,不同的工具用法不同。最简单的一个例子,字段名首字母大写:@SerializedName(value="Id") // gson@JsonProperty(value="Id") // jackjson@JSONField(name = "Id") // 阿里fastjsonprivate String Id;...原创 2021-11-16 14:19:22 · 1294 阅读 · 0 评论 -
java获取本机ip地址及请求ip地址
java获取本机ip地址及请求ip地址原创 2021-10-22 14:55:22 · 463 阅读 · 0 评论 -
uuid实现代码跟踪通用模板
代码:UUID uuid = UUID.randomUUID();try { logger.info("备份信息查询请求开始,uuid:{},backup:{}",uuid,JSON.toJSONString(backup)); List<Backup> backups = BackupMapper.selectByCondition(amFailBackup); logger.info("备份信息查询请求完成,uuid:{},backup:{}",uuid,JSON原创 2021-10-20 15:33:38 · 175 阅读 · 0 评论 -
MediaType和文件类型对应关系
这里列出些常用的便于记忆。{ contentType.put(".load" , "text/html"); contentType.put(".123" , "application/vnd.lotus-1-2-3"); contentType.put(".3ds" , "image/x-3ds"); contentType.put(".3g2" , "video/3gpp"); contentType.put(".3ga" , "video/3gpp");原创 2021-09-21 11:59:04 · 4192 阅读 · 0 评论 -
tomcat禁止输出到catalina.out
1、修改tomcat/conf/logging.properties中的日志输出级别替换所有的FINE 为OFF,下面只展示一个例子:catalina.org.apache.juli.AsyncFileHandler.level = FINE修改后:catalina.org.apache.juli.AsyncFileHandler.level = OFF2、关闭localhost_access_log日志注释掉一下句:<Valve className="org.apache.catal原创 2021-08-26 17:59:36 · 3065 阅读 · 0 评论 -
log4j.properties笔记,和slf4j,参数等
FileAppenderRollingFileAppenderlog4j.rootCategory=INFO, CONSOLE,Rlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=${catalina.base}/logs/portal.loglog4j.appender.R.Encoding=GBKlog4j.appender.R.MaxFileSize=256KBlog4j.appende原创 2021-08-26 16:27:14 · 310 阅读 · 0 评论 -
一个方法有多个实现,如何确定具体用的哪个方法
idea中方法定位(适用于只有一个实现)idea中的ctrl+alt+单击是直接进入方法,这种适合只有一个实现的时候。有多个的时候不好用,他会让你选。debug进入方法定位(多实现的时候也可定位)从代码中并不能确定,但在执行的时候可以确定。 就是在debug的时候,按f7进入方法,就知道具体是哪个方法了。...原创 2021-08-19 16:39:03 · 1187 阅读 · 0 评论 -
between and和两个and的区别,区间查询范围越大条数反而不是越大
between and和两个and写法的区别between and写法:and create_date between to_date('2019-01-01','yyyy-MM-dd') and to_date('2020-01-01','yyyy-MM-dd')两个and写法:and create_date >= to_date('2019-01-01','yyyy-MM-dd') and create_date <= to_date('2020-01-01','yyyy-MM-原创 2021-08-18 10:49:28 · 2220 阅读 · 0 评论 -
pageHelper使用笔记
手动写分页当然是没问题的。但是如果图省事,可以使用pageHelper。用法pom.xml引入依赖:<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.4</version></dependency>java代码:// 先写原创 2021-08-17 18:12:58 · 202 阅读 · 0 评论 -
单点登录笔记
场景oa是主系统,crm是子系统。子系统对接oa系统的单点,从单点界面点crm图标,跳转到crm应用。crm应用前后端分离,后端提供鉴权接口getToken(),前端调用鉴权接口,如果鉴权成功,登录crm系统。如果鉴权不成功,跳转到oa登录页,登录后回调到crm登录页面。crm鉴权逻辑描述:从cookie拿到约定的token,去oa单点校验登录。通过则返回code=0表示成功,失败code=-1。那么跳转到oa登录页。oa单点如果通过,会从本系统查看是否有此用户,如果有成功,如果没有,还是返回原创 2021-08-17 07:16:10 · 1758 阅读 · 0 评论 -
datax使用笔记
datax是一款python实现的数据库迁移工具。基本原理:通过datax.py读取json配置文件,按照配置执行迁移任务。步骤为:1、下载并解压datax。2、编写迁移配置文件(如:t_user.json)。3、执行命令。/data/datax/bin/datax.py /data/datax/job/crm/t_user.jsont_user.json示例json如下:{ "job": { "setting": { "speed": {原创 2021-08-13 14:57:06 · 381 阅读 · 0 评论 -
开发中遇到最恶心的场景有哪些
1、数据不给查询权限。点评:不给修改权限是说的过去的,但是不给查询权限就过分了。 亲身经历过连select 1 from dual; 的权限都不给的情况。想要查点问题真正难于登天。原创 2021-08-10 15:47:07 · 101 阅读 · 0 评论 -
postman请求时报错:ssl error: self signed certificate in certificate chain | disable ssl vertification
postman请求时报错,提示信息:ssl error: self signed certificate in certificate chain | disable ssl vertification一开始以为可能是mac地址白名单问题,其实不是。而是postman设置问题。settings | ssl certificate verification ,点击off,关闭即可。...原创 2021-08-09 10:41:14 · 13768 阅读 · 1 评论 -
apollo使用笔记
apollo界面 略这里面涉及项目的创建,命名等。 暂略。项目中配置apollopom.xml中引入(下列配置只是示例,不能直接用):<dependency> <groupId>com.test.ddd.gfs</groupId> <artifactId>apollo-client</artifactId> <version>1.1.4</version></dependency>applic原创 2021-08-05 18:25:12 · 384 阅读 · 0 评论 -
attempted to return null from a method with a primitive return type (int).
场景报错信息:attempted to return null from a method with a primitive return type (int).解决方案这个报错一般出现在mybatis的update语句中,可能的原因:1、方法返回类型不对,要用int不要用Integer,int即使没有匹配到,默认值是0。Integer updateUser(User); // 错误int updateUser(User); // 正确2、mybatis标签写的不对,例如<updat原创 2021-08-05 17:25:32 · 596 阅读 · 0 评论 -
数据库String类型变为Date类型引起的问题
场景接口返回productDate为2020-06-01这样的字符串。A表中productDate为String。B表中productDate为Date。那么查询时,A表字段不用动。B表字段需要加to_char(productDate,‘yyyy-MM-dd’)插入、更新时:B表字段不用变化。变化版本大变更,A类 productDate 类型由String变为Date。查询时:A表productDate都要加to_char(productDate,‘yyyy-DD-mm’)B表仍保留原创 2021-07-22 07:40:12 · 537 阅读 · 0 评论 -
spring集成guava
guava是一款很好用的集合工具。pom.xml引入依赖:<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version></dependency>原创 2021-06-28 18:01:36 · 483 阅读 · 0 评论 -
java打印内存堆栈日志
win写法-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=c:\相对路径-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=./logs绝对路径-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/data/logs原创 2021-06-28 14:54:54 · 1478 阅读 · 0 评论 -
maven打包本地资源
直接上干货:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.2</version> <configuration>原创 2021-06-11 13:48:15 · 191 阅读 · 0 评论 -
Element ‘dependency‘ cannot have character [children], because the type‘s content type is element-on
pom.xml文件报错:Element ‘dependency’ cannot have character [children], because the type’s content type is element-only.看半天也没发现配置文件有啥问题,最后发现是格式不对。出现这种情况的原因一般是直接从网上复制过来,空格换行符什么的有冲突。...原创 2021-06-08 17:34:08 · 250 阅读 · 0 评论 -
ResponseEntity<List>接收结果时报错: java.util.LinkedHashMap cannot be cast to ***
场景ResponseEntity接收结果时报错:java.util.LinkedHashMap cannot be cast to ***解决方案使用序列化参数。Map<String, String> params = new HashMap<>();params.put("userName","likui");HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLI原创 2021-06-07 15:49:44 · 751 阅读 · 0 评论 -
MultipartFile接收上传文件乱码问题(zuul网关、gateway网关)
场景表单上传,后台MultipartFile接收。本地测试不乱码,在服务器上乱码。解决方案继续测试,发现直接用ip+端口上传不是乱码。用域名或nginx是乱码。因此可以猜测是网关或nginx的问题。先调整nginx,http模块或server模块加 chatset utf-8;实测无效。继续找问题,百度了下说是zuul gateway的一个缺陷。原因是gateway过滤器默认使用 US-ASCII 编码。解决办法:1、spring-web 5.6以上版本已修复该缺陷。2、手动修改g原创 2021-04-29 10:15:52 · 3088 阅读 · 0 评论 -
替换字符串中的非ascii字符
方案一:String originString="我的名字叫jack";String resultString = originString.replaceAll("[^\\x20-\\x7e]", "_");System.out.println(resultString);或者,您可以将其扩展为所有非四字节UTF-8字符,如果该字符不包含“。”字符:方案二:String originString="我的名字叫jack";String resultString = originString.原创 2021-04-23 10:21:25 · 436 阅读 · 0 评论 -
异步返回的jsonResult
需求:用户上传文件,接口返回上传成功或者上传失败。成功的话,返回fileId。用户可以根据fileId查询解析的结果。包含3个操作:上传操作解析操作存库操作实现:上传采用附件表。查询用redis来实现,因为文件不合规不用存库。 这里用redis来缓存。上传成功解析成功存库成功 code=0,parseSaveSuccessFlag=true, redis保存票据信息。异常等同失败。存库失败 code=0,parseSaveSuccessFlag=false, redis保存票据信息原创 2021-04-21 22:18:38 · 167 阅读 · 0 评论 -
MultipartFile的使用
要查看信息很简单,用Json解析下打印即可:logger.info("上传的文件为:{}",JSON.toJSONString(file));file的json报文为:{ "bytes": "一大串字符串,略", "contentType": "application/pdf", "empty": false, "inputStream": { "channel": { "open": true },原创 2021-04-13 16:09:53 · 407 阅读 · 0 评论