java
文章平均质量分 53
TimerBin
这个作者很懒,什么都没留下…
展开
-
CORS跨域not a secure more-private排查及修复记录-Chrome最新版
出现以上跨域问题后,可以尝试下更换IP地址,更换解析方式去解决问题,最好双域名在联调期间使用同一中方式进行域名解析。想法二验证结论:www.timer1.com 前端页面部署在11.xxx.xxx.xxx网段下,www.timer.com 服务端接口部署在 10.xxx.xxx.xxx 网段下,发现问题重现,无法正常解决。:将运营后台的前端、后端都部署到预发环境,并且在同一个机房中,同11.xxx.xxx.xxx 网段,以上问题解决,可以正常进行前后端分离跨域请求方案。:将域名升级为Https。原创 2023-01-19 12:04:52 · 4168 阅读 · 0 评论 -
Spring Mvc Mybatis中解决 jdbc dataSource 无法正常赋值问题${}
一、背景说明 新搭建了一个项目,框架使用的spring+spring Mvc+Mybatis ,数据库使用的是MySql,项目可正常启动,但是在功能中使用数据库时就出现以下错误信息:### Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Coul...原创 2020-04-21 22:09:56 · 670 阅读 · 0 评论 -
借助capstone解析JVM崩溃 hs_err_pid.log 日志中的机器码
一、背景说明 在项目正常启动后,运营一段时间后,发现java进程死掉JVM崩溃,在项目服务器中生成hs_err_pid.log 错误日志,下面介绍一下hs_err_pid.log 日志中的Instructions 信息的解析。二、解析Instructions 信息中机器码信息 将Instructions 信息中的机器码信息转换为汇编码 其中Instructions...原创 2020-04-20 10:27:03 · 541 阅读 · 1 评论 -
idea 通过正则表达式找到不匹配字符串内容进行全局查找、替换
背景说明在项目中需要找到不规范代码进行全局查找,替换成规范代码。例如:找到所有属性无注释的代码,idea中快捷键(ctrl+r)执行替换操作逻辑如下所示:注:同样的正则也支持在idea中进行全局查找、替换,快捷键(ctrl+shift+r)以上正则表达式详细说明:(?<!你的正则表达式) -》 标识不匹配的意思\n ...原创 2020-01-20 18:31:14 · 2967 阅读 · 0 评论 -
使用ForkJoinPool线程池调用 jdk 1.8 并行流parallelStream
一、背景说明随着Jdk 升级到1.8后,项目中使用parallelStream 等并行流调用方式逐渐增多,在进行jstack 查看线程时,发现大量的ForkJoinPool.commonPool-worker-xx线程,但是无法具体定位到是哪个业务线在使用,考虑使用自定义线程池使用parallelStream,详细代码如下所示二、自定义线程池具体实现代码如下所示:package co...原创 2020-01-07 22:24:03 · 1202 阅读 · 0 评论 -
微服务拆分之通用工具jar包管理方案
一、背景说明对现有系统进行微服务化拆分,在拆分过程中遇到了通用工具jar包版本管理、版本升级的问题,以下为我们部门的解决方案。二、问题详细说明原有系统中服务较少,通用工具类各自为战,未统一管理。现进行微服务细致拆分,随着微服务的增多,继续保留各服务间通用工具类各自为战的情况,在处理依赖底层jar包版本升级、jar包不兼容、工具类升级问题上,大大增加了维护成本,并且无法面面俱到。三、目前...原创 2019-12-10 21:16:26 · 1525 阅读 · 4 评论 -
js文件上传ie报错(jquery+Iframe)
在最近工作中需要图片上传功能,前提条件:1、上传过程中页面不刷新。2、上传页面中不使用file按钮(隐藏file按钮),用a标签来隐式调用file按钮。 于是想到基于Iframe做了一个图片上传,在JS中调用$("#uploadFile").submit()时出无法在IE浏览器下兼容容,无法正常上传提示"拒绝访问"脚本错误(在Chrome、FireFox下正常)。详情可参阅...原创 2016-02-19 16:13:00 · 226 阅读 · 0 评论 -
String源码中hashCode算法
针对java中String源码hashcode算法源码分析 /** The value is used for character storage. */private final char value[]; //将字符串截成的字符数组/** Cache the hash code for the string */private int hash; // Defa...原创 2016-03-01 11:17:10 · 146 阅读 · 0 评论 -
java线程面试题
面试题:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次 不解释直接上代码: import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.locks....原创 2016-03-24 10:18:20 · 191 阅读 · 0 评论 -
HashMap 源码分析
在HashMap的API中定义中有具体说明“Note that this implementation is not synchronized.”,此类是不同步方法,HashMap数据结构在单线程应用中可正常使用。在blog中看到有人在并发环境中使用HashMap时,出现过占用CPU100%问题,结合HashMap源码我们对出现占用CPU问题进行分析。 一、创建HashMap...原创 2017-06-13 15:51:21 · 125 阅读 · 0 评论 -
log4j 日志不输出原因总结
一、问题说明: 将log4j.properties添加到项目的\WEB-INF\classes目录下,日志不按lo4j配置方式输出。 二、问题原因: 项目中即引入了log4j.jar,又引入了org.apache.logging.log4j,日志jar包冲突,日志不输出! 三、lo4j配置注意事项 1、web.xml 配置 ...原创 2017-06-27 14:38:50 · 5088 阅读 · 0 评论 -
JConsole 远程链接配置(linux-tomcat)
一、摘要: 在window系统中使用JVM自动可视化工具JConsole远程链接linux系统下的tomcat,对其进行监控。 二、步骤 1.修改linux系统下的tomcat的catalina.sh文件,在“# - Execute The Requested Command--” 注释的上面添加如下配置:CATALINA_OPTS="$CATALINA_OPTS -D...原创 2017-08-02 15:15:57 · 252 阅读 · 0 评论 -
NoClassDefFoundError: org/apache/log4j/spi/LoggerFactory ESAPI 问题排查笔记
一、背景介绍 在原有项目中使用的是log4j,为了保证与其他项目日式输出方式保持一致,准备将log4j升级为logback,增加日志滚动存储方式。二、问题说明 在测试人员进行功能验证时,发现进行商品搜索时出现如下异常:Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/spi/LoggerFact...原创 2019-01-15 22:31:56 · 7142 阅读 · 2 评论 -
使用POI中XSSF 实现“合并单元格时,仅保留左上角单元格的值,而放弃其他的值“ 问题排查笔记
一、背景介绍 在项目中借助POI 和 JXLS 两个开源工具jar实现excel数据导出,原有使用POI->HSSF方式进行数据导出,随着导出数据量的增大远远超出单sheet 65535条上限,将导出方式由POI->HSSF升级为POI->XSSF方式。 术语说明: JXLS:国外常用数据模版导出工具,easyPOI 是国内常用数据...原创 2019-02-16 12:09:59 · 10895 阅读 · 1 评论 -
自构建多级缓存
一、背景说明 准备使用责任链模式,构建多级缓存链,依次逐级向下取值,直到取到值为止。将取到的值再逐级赋值给未取到值的缓存级。二、定义多级List链路接口类Chainpublic interface Chain { String get(String key );}缓存公用接口public interface CacheClient { S...原创 2019-03-13 01:39:35 · 386 阅读 · 0 评论 -
使用JDK1.8 parallelStream 引发的 Lock wait timeout exceeded; try restarting transaction
一、背景说明在线上环境中数据库监控中,突然出现Lock wait timeout exceeded; try restarting transaction 错误,并伴随着大量数据库请求超时报警。二、了解问题问题说明update data_sku SET sku_str ='测试',modified = now() where id = 123java.sql.SQLExcepti...原创 2019-06-24 21:28:02 · 1875 阅读 · 0 评论 -
CMS 升级到G1遇到RSS内存泄漏问题
一、背景说明 伴随着JDK版本不断攀升,已逐步将项目中JDK由1.7升级到1.8,偶然发现G1 GC相比CMS加入了一些新特性,像并行独占式运算,指定停顿目标时间,减少空间碎片等。最终决定将项目中使用的CMS升级为G1,在升级过程中遇到RSS内存泄漏问题。二、问题说明 在将项目的GC升级为G1后,yong GC可正常执行,各项指标正常,但是java进程的RSS随着...原创 2019-07-24 20:52:43 · 2019 阅读 · 0 评论 -
Java heap space 问题查找
在项目开发上线的过程中,最近发现一个Dubbo服务隔7天左右就会出现以下问题:Exception in thread "Timer-0" java.lang.OutOfMemoryError: Java heap space (一开始使用findBugs进行扫描,并未扫描出可用结果)首先,介绍一个免费开源分析dump的软件Memory Analyzer,下载地址如下所示:(同事...原创 2014-11-03 16:57:53 · 609 阅读 · 0 评论 -
JVM 调优参数总结
介绍JVM 的常用配置参数信息:-vmargs : 说明后面是设置Jvm的参数-Xms128m : Jvm最初始时分配的堆内存,可以与-Xmx设置为相同,可以避免内存回收后重新分配内存。-Xmx512m : Jvm最大分配的堆内存-XX:PermSize= :初始分配的非堆内存-XX:MaxPermSize= :设置最大持久代大小-XX:NewRatio=4 ...原创 2015-12-03 10:03:21 · 158 阅读 · 0 评论 -
String format 索引下标进行字符串格式化
string.format根据参数的索引下标对字符串进行格式化代码如下所示:System.err.println(String.format("%2$s %1$s","第一个参数","第二个参数")); 输出结果:第二个参数 第一个参数 解释说明: %:特殊字符 1$:指定参数索引 s:指定转换符类型(s:字符串类型,c:字符...原创 2015-12-01 15:04:15 · 560 阅读 · 0 评论 -
自定义、定制findbugs扫描类型,忽略指定类型
一、背景介绍 在使用findbugs对项目代码进行扫描时,默认findbugs扫描级别较高,部分可以接受bug也会被扫出来,影响项目整体扫描报告,为严重问题的排查及修改增加了难度。二、配置findbugs忽略文件,排除文件 排除文件findbugs-exclude-bugs.xml,文件内容如下所示:<?xml version="1.0" encoding...原创 2018-11-09 18:24:12 · 3765 阅读 · 0 评论 -
JAVA 代码中常用文件路径获取方式
前言 在java中经常会遇到读取各种不同路径下的文件内容信息,以下就是我在使用过程中所遇到的读取不同路径下文件的总结。 一、本地系统盘符下的绝对路径的文件System.out.println(new File("D:/message.properties").getAbsolutePath());System.out.println(new File("D:/me...原创 2013-11-07 18:04:11 · 202 阅读 · 0 评论 -
java 缩略图
文章说明:根据用户上传的图片按等比例生成相应的的缩略图,两小例笔记。第一、java-image-scaling 开源小工具生成图片缩略图Google Code Url:http://code.google.com/p/java-image-scaling/Maven地址:http://mvnrepository.com/artifact/com.mortennobel/java-i...原创 2014-05-24 17:35:55 · 203 阅读 · 0 评论 -
JAVA快速精准获取图片类型及实现源码分析
关于在Java 程序中如何根据上传的图片流信息,获取上传的图片类型、宽、高这个问题一直纠结着我,终于抽出时间对这个问题分析 在JDK 中有提供现成的API 来查询图片的类型、宽、高。ImageInputStream imageInputStream = ImageIO.createImageInputStream(new File("D:\1.jpg"));Iterator&...原创 2014-05-28 17:45:41 · 427 阅读 · 0 评论 -
java 加载Https证书
本文以Facebook证书为例一、下载证书,详情如图所示 二、将证书加载到jks/keystore密钥仓库中导入设置密码 查看是否导入成功 更多操作可参照:http://www.blogjava.net/lihao336/archive/2012/02/03/369303.html三、在Java中加载证书System.setProperty("javax.net...原创 2015-01-14 20:33:41 · 1125 阅读 · 0 评论 -
java ThreadPoolExecutor
java ThreadPoolExecutor 学习笔记/** * @param corePoolSize * 线程池中保持的线程数量 * @param maximumPoolSize * 线程池最大可开启线程数 * @param keepAliveTime * 当线程池中的线程总量大于保持的线程数量时, *...原创 2015-01-19 20:58:31 · 133 阅读 · 0 评论 -
java nio Files DirectoryStream 文件复制
JDK1.7 中新增了nio包,基于此包可实现java程序基于操作系统的情况下对文件或文件夹进行CRUD操作,同时支持跨系统间的文件操作。一、对文件操作代码1、在java中基于IO对系统文件进行操作public static void oldCopyFileList(){ long begin = System.currentTimeMillis(); FileInputSt...原创 2015-01-20 22:15:03 · 314 阅读 · 0 评论 -
java mail
一、java Mail 简单案例 学习笔记基于Maven前期准备(这里使用1.4.7为例)<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version>&a原创 2014-08-12 15:12:21 · 122 阅读 · 0 评论 -
HttpClient 4.0 post file and text
HttpClient 4.0 实例--简单工具类一、基于Maven项目前期准备 1、所需jar包,本人使用的Maven项目,其中Pom.xml内容如下所示<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>http...原创 2014-08-12 15:49:09 · 120 阅读 · 0 评论 -
二分插入法
二分插入法每次看都无法一次理解清楚,在这里做一次笔记加深下印象。一、Java代码如下所示: public static void main(String[] args) { int [] values = new int[]{3,8,7,6,1,9,12,2,5,11}; for(int i = 0 ; i < values.length ; i++){ S...原创 2015-03-16 20:04:32 · 416 阅读 · 0 评论 -
java 冒泡排序 单循环
今天陪同事面试,同事问到了单循环冒泡排序,考住了!自己回来试了一下,代码如下所示: public static void main(String[] args) { int [] stars = {10,2,21,9,7,6,12,8,1,98,27,32,11,14,11}; int temp = 0; int lengths = stars.length-1; ...原创 2015-05-15 16:20:12 · 247 阅读 · 0 评论 -
基于Java开发常用网址
一、eclipse官网下载地址 http://www.eclipse.org/downloads/二、JDK官网下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html二、SVN服务端下载地址 VisualSvn:http://www.visualsvn...原创 2014-09-06 23:14:30 · 114 阅读 · 0 评论 -
多线程分段遍历集合list(spring 线程池)
基于Spring 的ThreadPoolTaskExecutor 线程池分段遍历读取集合list代码如下所示: 1、定义线程池<bean id="threadPoolTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <!--初始...原创 2016-05-16 10:45:14 · 2949 阅读 · 0 评论 -
获取图片宽度与高度
在进行图片上传的功能开发过程中,在功能中需要对上传的图片进行宽度、高度限制,以下罗列以下获取图片高度、宽度的方式: 一、在java中获取图片宽度、高度:import java.awt.image.BufferedImage;import javax.imageio.ImageIO;InputStream inputStream;//通过Spring MVC 获取文...原创 2016-06-07 14:42:38 · 530 阅读 · 0 评论 -
多层集群服务中获取客户端IP地址
在服务端java代码中获取客户端访问IP地址代码:public String getRequestIp(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreC...原创 2016-08-22 09:54:36 · 601 阅读 · 0 评论 -
去除字符串中的(?)问号
使用java中replaceAll去除字符串中包含的问号String str = "aaa??bbb";str = str.replaceAll("%3f", "").replaceAll("[?]", "");System.err.println(str); 问号?在正则表达式中是特殊字符因此需要使用[]将其包含在其中,replaceAll默认支持正则表达式替换!...原创 2016-08-22 10:02:37 · 3858 阅读 · 1 评论 -
JVM配置CMS调优实战笔记
一、背景说明 由于原有项目未进行JVM配置,全部是用默认JVM配置,在压测过程中TP99惨不忍睹,Young gc使用PS Scavenge,Full gc使用PS MarkSweep二、JVM基础知识 1)虚拟机内存模型: 程序计数器、虚拟机栈、本地方法栈、JVM堆、方法区(粗略理解包含永久代) 2) 垃圾收集算法:...原创 2018-10-25 20:15:30 · 4682 阅读 · 2 评论