java
hellokitty136
这个作者很懒,什么都没留下…
展开
-
PDF文件内容读取
PDF文件内容读取一、PDF表格读取可以读取表格内容,以及表格坐标1、maven依赖 <!-- openPdf 可以读取标签--> <dependency> <groupId>com.github.librepdf</groupId> <artifactId>openpdf</artifactId> <version>1.3.26原创 2022-01-24 17:07:11 · 2996 阅读 · 0 评论 -
java程序CPU占用过高问题排查
问题是这样的,将项目部署到服务器上后,系统告警提示服务器的cpu被沾满了,于是开始进行了排查。TOP首先查看系统资源占用信息,TOP看一下,然后按1发现正在运行的JAVA项目CPU占用率很高,百分之200左右了,那么问题一定出在这个程序中ps -mp pid -o THREAD,tid,time再通过ps命令查看这个程序的线程信息,tid代码线程ID,time代表这个线程的已运行时间,第一行的TID为空不用管,应该是所有线程的cpu占用展示由上面TOP可知进程I...原创 2020-10-30 10:49:36 · 581 阅读 · 0 评论 -
es查询AB,结果ABB匹配度更高问题
比如有个person_name字段,正常查询的时候按照_score排序,查询张建的时候,张建建的分值比张建的分值大,导致排序的时候张建建排在张建之前,但是按照常理来说,张建应该排在张建建之前,这就涉及到es的分词器以及分值计算问题了解决方法是在person_name字段中设置一个子字段,不分词"person_name": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "...原创 2020-08-12 11:27:39 · 993 阅读 · 0 评论 -
ES按名称查询数据时,相同名称的数据评分不同问题
问题背景:我在做es查询人员信息的时候,按照人员姓名模糊查询,需要按照匹配度降序排序,并按照年龄降序排序问题现象:相同名称的人员,比如马云,匹配度不同,导致展示的时候,年龄小的马云却排在了年龄大的马云之前,因为年龄小的马云评分高问题原因:es索引是分片存储的,查询计算评分的时候,是每个分片单独计算的,所以会出现相同名称的人员评分不同的问题、解决方案:1、与产品沟通,当数据量足够大时,每个分片数据近似相同,则各个分片计算出来的评分会很相近2、查询的时候增加查询条件(dfs_query_th原创 2020-08-12 10:56:20 · 995 阅读 · 0 评论 -
PriorityQueue详解
JAVA中PriorityQueue详解top k算法的经典实现是大顶堆和小顶堆,而在JAVA中可以用PriorityQueue实现小顶堆,话不多说,直接上代码public static List<Integer> getTopMapNum(int[] arr, int k) { Queue<Integer> priorityQueue = new Pri...原创 2020-04-29 09:58:38 · 31662 阅读 · 4 评论 -
MyBatis提示找不到指定的Mapper映射文件
1、问题现象:ssm框架查询数据库时报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):2、问题原因:target目录下没有生成mapper.xml文件3、解决方法:在pom文件中添加如下配置:<build> <resources> ...原创 2020-04-04 19:26:52 · 910 阅读 · 0 评论 -
athas使用经验
一.提升cmd权限为SYSTEM在windows服务器中tomcat以SYSTEM权限启动,JDK自带工具(jmap、jstack、jhat)无法正常使用使用PsExec64.exe提升cmd权限1. 将PsExec64复制到服务器2. 运行cmd命令:PsExec64.exe /s cmd 如果不成功,则执行下条命令PsExec64.exe \\127.0.0.1 -u 服务器用户名...原创 2020-04-01 10:38:32 · 882 阅读 · 0 评论 -
阿里巴巴常用的15款开发工具
https://www.infoq.cn/article/1jV*BDxGwld6CWDVIt48原创 2019-08-08 10:46:59 · 211 阅读 · 0 评论 -
利用JDK工具定位问题
前置条件:在windows中使用cmd以system的形式启动,不要以管理员启动。如果是管理员启动请使用PsExec工具更改,更改指令PsExec /s cmd- 使用jps查看进程是否存在- 使用jstat -gcutil pid 查看进程gc清空- 使用jstack -l pid > stack_file 分析进程中线程dump- 使用jmap -du...转载 2019-07-04 20:28:57 · 159 阅读 · 0 评论 -
性能定位的一些工具
性能定位的一些工具一.提升cmd权限为SYSTEM在windows服务器中tomcat以SYSTEM权限启动,JDK自带工具(jmap、jstack、jhat)无法正常使用使用PsExec64.exe提升cmd权限1. 将PsExec64复制到服务器2. 运行cmd命令:PsExec64.exe /s cmd 如果不成功,则执行下条命令PsExec64.exe \\127.0.0...转载 2019-07-04 20:28:21 · 207 阅读 · 0 评论 -
将包含八进制数据的字符串转换为汉字字符串
public static String transfromOctalToString(String dataStr) {if (! dataStr.contains("\\")) {return dataStr;}//不属于八进制内容的字符StringBuilder oldBuffer = new StringBuilder();//属于八进制的内容,转成十六进制后缓存在这里Str...转载 2019-03-26 19:20:53 · 1996 阅读 · 1 评论 -
hashmap的冲突解决方法及原理分析(注:java8中用了平衡树来提高冲突解决的性能)
在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样。当程序试图将多个 key-value 放入 HashMap 中时,以如下代码片段为例:HashMap<String,Object> m=new HashMap<String,Object>(); m.put("a", "rrr1")...转载 2018-06-15 11:39:31 · 1017 阅读 · 0 评论 -
通过图片url获取图片数据
//此方法的作用是使下面的方法可以获取https的图片数据private static void trustAllHosts() { try { SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, xtmArray, new java.security.SecureRandom()); ...原创 2018-05-23 21:04:47 · 5200 阅读 · 0 评论