java
liberalliushahe
有志者事竟成
展开
-
jar程序 cpu异常高问题排查
1.使用top 定位到占用CPU高的进程PIDtop ps aux | grep PID2.获取线程信息,并找到占用CPU高的线程ps -mp pid -o THREAD,tid,time | sort -rn 3.将需要的线程ID转换为16进制格式printf "%x\n" tid4.打印线程的堆栈信息jstack pid |grep tid -A 30...原创 2020-09-02 15:13:24 · 1188 阅读 · 0 评论 -
使用java获取word文档批注
使用jar poi3.14public class DocPostil{ private File file; /** Word document */ private XWPFDocument docx; /** 批注内容数组 */ private XWPFComment[] comments;// /** 批注引用正文map,结构-<批注Id,正文text> */ ...原创 2019-01-24 16:17:10 · 3112 阅读 · 1 评论 -
使用h2数据库出现密码错误的问题解决方案
虽然看着是用户名和密码的问题,但是一直没有解决。首先确认自己在输入密码时出现过错误!如果有这个操作那么下面的方法会解决你的问题!进入C盘用户下边的管理员文件夹删掉有关h2 server.properties .mv.db trace.db这几个文件,然后重启服务就会解决!h2数据库导入导出数据sql:call CSVWRITE ( ‘C:/user.txt’, ‘SELEC...原创 2019-02-22 16:23:21 · 6398 阅读 · 4 评论 -
改造spring旧项目 将用户会话保存在redis中
首先maven中增加依赖org.springframework.sessionspring-session-data-redis1.3.2.RELEASEweb.xml中增加 <!-- session共享过滤器 --> <filter> <filter-name>springSessionRepositoryFilter</f...原创 2019-02-22 16:39:58 · 289 阅读 · 0 评论 -
spring3.0整合cxf3.1.8
pom.xml增加内容<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-core</artifactId> <version>3.1.9</version> </d...原创 2019-03-29 14:34:45 · 516 阅读 · 0 评论 -
工单自动分配算法实现
工单自动平均分配给工号最近一个需求,需要上游分配的工单平均分配给所有工号,每个人相差1-2张工单。算法实现思路:参考了负载均衡轮询的思想。但是发现这个算法并不符合要求,所以将此算法改造一下,让其符合需求。以下代码需要根据实际改造,仅供参考!!!后期会持续优化。核心代码:private static List<StaffInfo> NotDistributeStaff=new ...原创 2019-04-30 15:58:53 · 6292 阅读 · 0 评论 -
jmeter3.2定时调用http接口实现
最近需要测试功能,需要通过接口生成大量测试工单,为了提高工作效率使用jmeter来实现此功能。设置计划参数新建http请求新建http信息头管理器新建查看结果数启动任务点击http请求可以看到请求的详细数据...原创 2019-05-07 16:11:52 · 1044 阅读 · 0 评论 -
生产环境tomcat进程占用异常高解决思路
最近生产环境一台tomcat隔一段时间cpu会达到900%,导致服务响应缓慢。首先确定排查思路1.先找到占用cpu高的进程idps -ef | grep PID2.打印出该进程下的线程占用cpu情况ps -mp pid -o THREAD,tid,time找到耗时最高的线程41093.将需要的线程转为16进制printf "%x\n" tid4.打印线程的堆栈信息js...原创 2019-05-17 11:35:45 · 658 阅读 · 0 评论 -
linux一键部署多台tomcat
最近由于部署tomcat较多,完全使用手工方式部署 步骤重复而且容易出错,因此使用shell脚本完成此功能。主要有几种方式1.采用主机免密登录2.使用sshpass 实现3.使用expect实现我这边主要采用第二种实现方式下载sshpass链接 https://sourceforge.net/projects/sshpass/$ tar -zxvf sshpass-1.05.tar....原创 2019-05-27 11:32:32 · 719 阅读 · 0 评论 -
替换eclipse保存的github仓库地址
由于在本地局域网搭建了gitlab仓库。有的时候需要修改仓库地址。防止自己忘记故记录如下windows->preferences->Team->Git->Configuration->Repository setting...原创 2018-10-19 11:27:13 · 567 阅读 · 0 评论 -
maven项目报错Cannot change version of project facet Dynamic Web Module to 3.0
此问题出现的状况是项目上有一个红叉,但是项目内容没有报错排查问题第一步就是Problems查看当前项目有关的错误我的项目出现错误是:1.Cannot change version of project facet Dynamic Web Module to 3.02.One or more constraints have not been satisfied解决方案:找到 项目名\.setti...原创 2018-06-02 10:17:14 · 206 阅读 · 0 评论 -
图片压缩之-JPEGCodec失效替换方案
近期,由于项目需要,需要对图片进行压缩处理,一开始用的是JPEGCodec,但是运行在JDK8以上版本中会找不到该类而报错,故上网搜索了下资料,找出了高版本JDK中的替代方案ImageIO, 整理如下:一些老的Java代码在JDK1.7下编译会报错,比如这个:程序包com.sun.image.codec.jpeg不存在。 [javac] D:\work\mpa\hyjc2\src\hyjc...转载 2018-04-10 16:05:58 · 1006 阅读 · 0 评论 -
macos maven 安装步骤以及问题解决方案
首先必须安装jdk 配置java环境变量.命令1:whereis java /usr/bin/java命令2:ls -l /usr/bin/javalrwxr-xr-x 1 root wheel 74 10 20 23:35 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Co...原创 2018-04-10 16:13:50 · 418 阅读 · 0 评论 -
JAVA 内存泄露详解(原因、例子及解决)
出处:http://blog.csdn.net/anxpp/article/details/51325838 Java的一个重要特性就是通过垃圾收集器(GC)自动管理内存的回收,而不需要程序员自己来释放内存。理论上Java中所有不会再被利用的对象所占用的内存,都可以被GC回收,但是Java也存在内存泄露,但它的表现与C++不同。 JAVA 中的内存管理 要了解Java中的内存泄露,首先...转载 2018-05-09 17:17:46 · 283 阅读 · 0 评论 -
HashMap1.8与HashMap1.6的不同
在JDK1.6中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。HashMap存储结构图:1.哈希桶数组索引位置static f...转载 2018-05-30 11:00:17 · 1288 阅读 · 0 评论 -
Apache Commons 工具类介绍及简单使用
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。下面是我这几年做开发过程中自己用过的工具类做简单介绍。 组件功能介绍BeanUtils提供了对于JavaBean进行各种操作,克隆对象,属性等等.BetwixtXML与Java对象之间相互转换.Codec处理常用的编码方法的工具类包 例如DES、SHA1、MD5、Base64等.Collections...转载 2018-05-31 09:46:31 · 196 阅读 · 0 评论 -
快速排序
算法的精髓在于,跟它一比高数也显得那么生动活泼…。本文由啊哈磊吐槽而成,话说我还是头一次见到这么萌的变量,简直颠覆我对变量这个兵种、对算法这个种族的传统观念。正在被算法欺负吗?快进来看看:人工智能+区块链的发展趋势及应用调研报告高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 ...转载 2018-05-31 16:57:59 · 266 阅读 · 0 评论 -
记一次在生产环境排查 OutOfMemoryError (OOM)的真实经历
摘要:我们都知道JVM的内存管理是自动化的,Java语言的程序指针也不需要开发人员手工释放,JVM的GC会自动的进行回收,但是,如果编程不当,JVM仍然会发生内存泄露,导致Java程序产生了OutOfMemoryError(OOM)错误。产生OutOfMemoryError错误的原因包括:java.lang.OutOfMemoryError:Javaheapspacejava.lang.OutOf...转载 2018-06-01 10:15:35 · 7310 阅读 · 0 评论 -
使用jmc监控远程tomcat
jmc(Java mission control)是JDK自带的一个图形界面监控工具,监控信息非常全面。他的安装目录在%JAVA_HOME%\bin\jmc.exe下面讲一下我使用jmc监控远程tomcat的过程。1. 服务端配置服务器环境:Linux+tomcat7+jdk7进入tomcat安装目录安装找到catalina.sh文件,在CATALINA_OPTS中增加一下配置:-Dcom.sun...转载 2018-06-15 10:20:57 · 747 阅读 · 0 评论 -
阅读Java字节码
1.Class文件基础 (1)文件格式 Class文件的结构不像XML等描述语言那样松散自由。由于它没有任何分隔符号,所以,以上数据项无论是顺序还是数量都是被严格限定的。哪个字节代表什么含义,长度是多少,先后顺序如何,都不允许改变。 (2)数据类型 仔细观察上面的Class文件格式,可以看出Class文件格式采用一种类似于C语言结构体的伪结构来存储,这种伪结构中只有两种数据类型:无符号数和表。无...转载 2018-06-01 15:13:55 · 1007 阅读 · 0 评论 -
报错信息:RunJar jarFile [mainClass] args...解决方案
报错信息:RunJar jarFile [mainClass] args...分析原因:没有指定主方法:解决方案:选中红框内主方法即可解决!原创 2017-05-20 16:45:20 · 8143 阅读 · 1 评论