java
文章平均质量分 77
lipengxs
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
jcsv导入导出动态扩展思路
我整理的jcsv工具类库简介:[csv导入导出组件jcsv](https://blog.youkuaiyun.com/lp19861126/article/details/99769509)jcsv可以支持导入校验规则动态扩展,以及导出规则动态扩展。下面来介绍下扩展思路原创 2020-07-19 22:13:41 · 552 阅读 · 0 评论 -
面试必问之jvm
问题1 说一下jvm内存模型问题1.1 jvm内存模型栈区:栈分为java虚拟机栈和本地方法栈重点是Java虚拟机栈,它是线程私有的,生命周期与线程相同。每个方法执行都会创建一个栈帧,用于存放局部变量表,操作栈,动态链接,方法出口等。每个方法从被调用,直到被执行完。对应着一个栈帧在虚拟机中从入栈到出栈的过程。通常说的栈就是指局部变量表部分,存放编译期间可知的8种基本数据类型,及对象引用和指令地址。局部变量表是在编译期间完成分配,当进入一个方法时,这个栈中的局部变量分配内存大小是确定的。会有两原创 2020-06-27 10:12:44 · 422 阅读 · 0 评论 -
面试必问之HashMap
问题1 hashmap原理?问题1.1 hashmap底层数据结构是什么哈希表结构(链表散列:数组+链表)实现,结合数组和链表的优点。当链表长度超过 8 时,链表转换为红黑树。问题1.2 jdk1.8为啥要将链表转为红黑树呢?链表的用的是线性检索,时间复杂度是O(n),而红黑树的检索方式是二分查找,平均时间复杂度是O(logn),当达到一定阈值后,二分查找是由于先行检索的问题1.3 什么情况下会将链表转为红黑树当来链表长度达到8时会转为红黑树,当桶中链表元素个数小于等于6时,树结构还原成链表。原创 2020-06-21 17:06:24 · 318 阅读 · 0 评论 -
java如何保证一个方法只能执行一次
java如何保证一个方法只能执行一次原创 2020-04-06 22:41:39 · 11691 阅读 · 0 评论 -
常用设计模式类图
简单工厂单例模式策略模式模板方法模式桥接模式责任链模式原创 2020-03-31 10:54:40 · 305 阅读 · 0 评论 -
java增量发布工具
有些公司由于没有使用maven作为构建工具,全量发布时没问题,而修改bug增量发布往往是将改动的代码手动编译后,从classes目录下拷贝到jar中然后再放到tomcat目录下发布,这种方法准确度不高,当修复bug时间跨度较大且文件较多时就不好提供了,下面介绍下一个增量打包工具https://gitee.com/lpxs/ProjectPatch.git,该工程是基于eclipse,针对文件的...原创 2020-02-08 16:15:01 · 1298 阅读 · 0 评论 -
springboot代码自动生成
微服务中代码自动生成原创 2020-01-30 23:28:18 · 1006 阅读 · 1 评论 -
logback日志级别动态切换的四种方案
springboot日志级别动态切换原创 2020-01-29 16:50:09 · 6352 阅读 · 0 评论 -
docker生产环境jvm性能优化
1、xmx与xms设置一样2、xmn或者maxnewSize设置3、当xmx设置大于3G时,设置垃圾回收器 -XX:+UseG1GC原创 2020-01-20 17:01:14 · 3969 阅读 · 0 评论 -
微服务业务日志收集方案
背景日志内容复杂多样,如何去收集有价值的日志是我们重点关注的。日志的价值其实是取决于业务操作的,不同的业务场景下相同类型的日志的价值会截然不同。根据以往的业务实践,结合企业级的一些业务需求,我们选定关注以下几类日志。• 跟踪日志【trace.log】 Server引擎的调试日志,用于系统维护人员定位系统运行问题使用。• 系统日志【system.log】 大粒度的引擎运行的入口、出口的日志,...原创 2020-01-11 17:47:15 · 3599 阅读 · 0 评论 -
java本地增量打包工具
原创 2014-09-01 10:53:33 · 149 阅读 · 0 评论 -
java解压rar以及zip
原创 2014-04-09 23:38:45 · 140 阅读 · 0 评论 -
ibatis执行存储过程,java.lang.ArrayIndexOutOfBoundsException: 0
atisticsType$()} ]]></procedure> 错误日志如下: --- The error occurred in com/aspire/prm/dmplt/statistics/dao/ibatis/maps/StatisticsSQL.xml. --- The error occurred while applying a parameter map. --- Check the insertStatist原创 2014-11-06 18:36:17 · 176 阅读 · 0 评论 -
spring手动事务控制
原创 2014-11-14 11:02:54 · 163 阅读 · 0 评论 -
java执行jar中的class类
原创 2015-10-26 18:29:38 · 218 阅读 · 0 评论 -
quartz集成spring集群部署
2017-03-06 18:46:52 · 134 阅读 · 0 评论 -
将整个工程的GBK转为utf-8格式
eclipse将整个工程转为utf-8时原先中文注释会变为乱码,13年时写了个脚本将整个文件的java以及配置文件转为utf-8格式,下面是代码package com.code.pd;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.Fi...原创 2019-08-06 09:30:00 · 1303 阅读 · 0 评论 -
java判断文本文件编码格式
上篇文章需要读取当前java或者配置文件的编码格式,这里主要支持UTF-8、GBK、UTF-16、Unicode等/** * 判断文件的编码格式 * @param fileName :file * @return 文件编码格式 * @throws Exception */ public static String codeString(File fileName) thro...原创 2019-08-06 09:32:00 · 15802 阅读 · 1 评论 -
java执行jar中的class类
很多情况都会需要运行jar,网上资料很多,大致分为三种方法:一、直接达成可执行的jar。二、定义lib path,使用命令执行。三、定时classloader,手动加载jar。 第一种方案比较简单,就不做介绍。 第二种方案比较适用于jar都集中在一个目录下,命令如下:java -Djava.ext.dirs="../3rdLib" -cp . com.aspi...原创 2015-10-26 18:29:38 · 954 阅读 · 0 评论 -
java线程帮助类(无限循环)
/** * 对监视线程的抽象。封装一种特殊的线程行为:一旦被创建就永远循环地做某件事情, * 直到该线程被杀死。这是一个抽象类,从Thread类继承而来,不能直接实例化,其子类 需要覆盖方法task()来完成具体的功能。 * * @version 1.0 */public abstract class WatchThread extends Thread { /*原创 2014-06-17 16:44:20 · 2297 阅读 · 0 评论 -
java解压rar以及zip
/** * 解压缩zip包 * * @param zipFilePath zip文件路径 * @param targetPath 解压缩到的位置,如果为null或空字符串则默认解压缩到跟zip包同目录跟zip包同名的文件夹下 * @throws IOException * @author yayagepei * @date 2008-9-28 */原创 2014-06-17 16:44:15 · 953 阅读 · 0 评论 -
通过JMX监控weblogic服务
一、JMX简介 JMX是一种JAVA的正式规范,它主要目的是让程序有被管理的功能,那么怎么理解所谓的“被管理”呢?试想你开发了一个软件(如WEB网站),它是在24小时不间断运行的,那么你可能会想要“监控”这个软件的运行情况,比如收到了多少数据,有多少人登录等等。或者你又想“配置”这个软件,比如现在访问人数比较多,你想把数据连接池设置得大一些。 当然,你也许会专门为这些管理来开发软件,但原创 2014-06-17 16:44:09 · 4741 阅读 · 1 评论 -
远程采集服务器指标信息(三)通过snmp
有时候需要监控不同操作系统的服务器性能指标,这时可以使用SNMP简单网络管理协议来获取某个网络设备上一些信息,达到数据监控的目的。snmp就不介绍了,网上有说明,现在就介绍下使用开源框架snmp4j,监控设备数据的方法。这里需要说明的是,被监控服务器上必须开启snmp服务。/** * SNMP远程会话 * * @author lipeng * @since 1.0 * @原创 2014-06-17 16:44:04 · 988 阅读 · 0 评论 -
java汉字占用字节
若使用utf-8编码,中文占3个字节,英文的话只占一个字节System.out.println("人".getBytes().length); 输出3若使用unicode编码,则是2个字节System.out.println("人".getBytes().length); 输出2若在windows上使用GBK编码,则占用2个字节 System.out.println("原创 2014-06-17 16:43:33 · 527 阅读 · 0 评论 -
tomcat发布两个项目报错webAppKey重复设置
两个项目的web.xml中都有一个日志监听器配置org.springframework.web.util.Log4jConfigListener 这只需要在web.xml中配置webAppRootKeywebName.root比如说我的项目名称是Recommend,则配置为webAppRootKeyRecommend.root原创 2014-06-17 16:43:13 · 584 阅读 · 2 评论 -
Flex相册
有一个项目用到了Flex,于是抽时间用flex与java做了一个相册,并且添加了上传功能,不过暂时没有针对具体的用户进行存储。下面是图片: 大小: 95.7 KB原创 2014-06-17 16:42:42 · 360 阅读 · 0 评论 -
远程采集服务器指标信息(二)通过telnet执行远程命令
远程采集服务器信息,比如说磁盘信息、内存信息。现介绍java通过telnet执行命令采集服务器信息,比如说执行df、ls、top。这里在linux环境通过root或者其他用户登录执行解析方式有点出入,下面是代码/** * Telnet远程会话 * */public class TelnetSession implements IRemoteSession {原创 2014-06-17 16:43:59 · 901 阅读 · 0 评论 -
quartz执行卡死--强制中断线程
在quartz中经常会碰到由于网络问题或者一些其他不稳定因素导致的线程卡死问题,这往往会导致数据处理的延时。而有时候一时无法定位到卡死的原因,为了降低系统风险,我们就会希望有一个超时机制,当执行超时时强制中断该操作。下面就举个例子,ftp协议不稳定,当连接ftp上传下载数据时有时候会遇到不可知的因素会导致卡死,比如说主动被动切换,服务器连接数满等等,现在我们使用java提供的动态代理以及Futur原创 2017-04-17 15:05:55 · 6040 阅读 · 3 评论 -
java汉字占用字节
若使用utf-8编码,中文占3个字节,英文的话只占一个字节System.out.println("人".getBytes().length); 输出3若使用unicode编码,则是2个字节System.out.println("人".getBytes().length); 输出2若在windows上使用GBK编码,则占用2个字节 System.out.prin...原创 2013-08-29 18:52:56 · 214 阅读 · 0 评论 -
java本地增量打包工具
在打增量包每次都需要将class文件、jsp文件等拷贝到增量包中比较麻烦。所以就写了一个增量打包工具。工作原理:根据文件的最后修改时间来打增量。1、查找Java类增量:根据eclipse工程下的.classpath文件中配置的javasrc目录,来查找修改的java文件,然后将其class文件拷贝到增量目录下。2、查找jsp文件、配置文件,可以自定义配置。下面为代码:XmlReadUtilp...原创 2014-09-01 10:53:33 · 376 阅读 · 0 评论 -
java解压rar以及zip
/** * 解压缩zip包 * * @param zipFilePath zip文件路径 * @param targetPath 解压缩到的位置,如果为null或空字符串则默认解压缩到跟zip包同目录跟zip包同名的文件夹下 * @throws IOException * @author yayagepei * @date 2008-9-28 *...原创 2014-04-09 23:38:45 · 291 阅读 · 0 评论 -
如何修改java过滤器链
在开发中遇到一个场景,当需要提供接口给其他系统,并需要鉴权时,我当时的处理方案是用过滤器拦截进行个性化鉴权,如果鉴权通过则还是需要经过安全测试、转码等filter,但是不走后面的鉴权过滤器,不通过则跳转到错误页面。这里就需要去掉过滤器链中的某一个过滤器,下面介绍下我的方案:通过反射修改过滤器链: /** * * 通过反射修改过滤器链 * @param...原创 2016-04-13 18:41:09 · 273 阅读 · 0 评论 -
quartz监控日志(一)
最近几个月,现网总是出现定时器不执行的情况,或者定时器卡死的情况,而又不方便排查,只能依靠quartz的debug日志以及错误日志来监控定时器的执行情况,并且随着我们系统中job越来越多,而使得job问题越来越难以跟踪,所以我们才需要一个能过对定时器进行监控的功能,并能实现线程阻塞告警,以及杀死阻塞线程的功能。监控job有几种方案:方案一:通过jmx远程或者直接在应用内部定时获取qua...2016-04-13 19:25:09 · 1553 阅读 · 0 评论 -
远程采集服务器指标信息(一) 远程通过SSH执行命令
远程采集服务器信息,比如说磁盘信息、内存信息。现介绍java通过SSH执行命令采集服务器信息,比如说执行df、ls、top。/** * * SSH远程执行shell类 */public class SSHSession implements IRemoteSession { /** SSH连接 */ private Connection c原创 2014-06-17 16:43:54 · 1519 阅读 · 0 评论 -
ibatis执行存储过程,java.lang.ArrayIndexOutOfBoundsException: 0
在项目开发中遇到一个问题,ibatis执行存储过程时报错<procedure id="insertStatisticsResult_settle" parameterClass="String"> <![CDATA[ {call proc_stats_$statisticsType$()} ]]></procedure> ...原创 2014-11-06 18:36:17 · 403 阅读 · 0 评论 -
spring手动事务控制
在项目开发中需要用到手动事务进行控制。现说下遇到的问题以及解决方案:如果程序需要使用嵌套事务,则需要在配置文件中添加一个配置属性,如下:<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property nam...原创 2014-11-14 11:02:54 · 707 阅读 · 0 评论 -
mybatis打印sql
我们在使用mybatis开发过程中,经常需要打印sql以及输入输出,下面说一下mybatis结合log4j打印sql的。1、添加mybatis配置mybatis的日志打印方式比较多,SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING,可以根据自己的需要进行配置。建议在m...原创 2017-04-26 22:35:44 · 349 阅读 · 0 评论 -
spring同时集成mybatis和ibatis
最近来了一个新项目,说是新的项目,但是需要用到以前旧的模块代码,旧的模块使用架构为ssi而新项目使用spring mvc +mybatis,考虑到工作量的问题,所以决定使用spring mvc +mybatis、ibatis来进行开发。配置sqlSessionFactory<!-- MyBatis配置 --> <bean id="sqlSessionFactor...原创 2015-12-29 18:51:40 · 578 阅读 · 0 评论 -
quartz监控日志(三)查看卡死线程堆栈
我们经常碰到一些定时任务卡死或者执行时间很长,这样的问题我们排查手段比较常用的是jstack命令来查看线程堆栈,然后根据我们监控中的threadId或者threadName来查找线程详细堆栈看卡在哪个方法。常用命令如下:jstack pid >jstack.log现在我们可以提供界面查看卡死线程堆栈controller代码 @RequestMapping("/g...原创 2017-07-13 22:39:44 · 1873 阅读 · 0 评论 -
jenkins集成findBugs并生成报告
公司使用jenkins来作为持续构建工具,由于要进行自动化构建、编译、代码走查、打包。今天介绍下jenkins集成findbugs的经验。1、首先进入jenkins插件管理页面,下载途中的findbugs插件 2、新建一个maven项目,就以findbugs-scan为例 3、然后在“源码管理”页签上填写代码库相关信息 4、在“构建环境”页签中填写构建命令clean...原创 2017-08-24 23:04:36 · 2221 阅读 · 0 评论
分享