问题集锦
Mr_Smile2014
加油↖(^ω^)↗,smile....
展开
-
剖析OutOfMemoryError: PermGen space产生原因及解决方法
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。OutOfMemoryError: PermGen ; 这一区域用于存放Class和Meta的信息。 产生原因: Class在被加载的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Col原创 2015-11-04 16:59:38 · 4275 阅读 · 0 评论 -
金融、支付行业的开发者不得不知道的float、double计算误差问题
在大多数行业涉及到浮点数的计算的场景比较少,但是在金融、支付行业就比较多了,而且在这两个行业一个小小的错误可能将会给公司带来极大的损失。在浮点运算中,浮点运算很少是精确的。虽然一些数字(譬如 0.5 )可以精确地表示为二进制(底数 2)小数(因为 0.5 等于 2 -1),但其它一些数字(譬如 0.1 )就不能精确的表示。因此,浮点运算可能导致舍入误差,产生的结果接近但不等于你可能希望的结果。原创 2016-08-08 20:29:19 · 7070 阅读 · 4 评论 -
java实现斜水印铺满整张图
今天遇到一个需求对上传的图铺满水印,在网上找了半天都是在指定位置设置水印,下面代码是我通过在网上找的代码,然后改造而成的。我们先看一下效果图下面讲实现方法:第一步:使用ps或美图软件设计水印图片,比如:第二步:把下面代码放入类中:package org.platform.framework.commons.util;import java原创 2016-06-25 23:24:14 · 12789 阅读 · 8 评论 -
使用apache log解决高并发下log4j引起大量线程block问题
由于项目用户量比较大,测试同事采用两百并发进行测试,在测试查过程中,查看jvm 虚拟机发现很多java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.log4j.Category.callAppenders(Category.java:204)问题原创 2016-09-01 17:21:15 · 19617 阅读 · 5 评论 -
android支付宝客户端html5网页偶尔无法自动关闭问题
公司产品使用支付宝移动网页接口支付,当三方商户传入跳转地址,在支付宝页面支付成功后跳转到该地址,如果没传将会自动关闭页面。测试的时候在ios客户端上面可以,但是在android客户端上偶尔行偶尔不行。原创 2016-09-05 11:19:48 · 3785 阅读 · 1 评论 -
在高并发的情况下小小的日志打印会严重影响到性能。
程序的性能与日志的输出内容及输出到控制台、文件的格式有非常重要的影响。下面将给大家讲解是怎么影响的。原创 2016-09-01 16:03:26 · 14406 阅读 · 2 评论 -
Mysql报Got error 28 from storage engine错误问题
今天早上准备把数据库里面的表结构导出来,在执行sql的过程中报Got error 28 from storage engine错误如下图所示:根据报的错误的语义很明显发现时存储发生了问题,通过看磁盘发现0空间可以使用,那就很明显是空间不足导致的。问题原因:磁盘空间不足。原创 2016-09-25 15:55:40 · 2406 阅读 · 0 评论 -
你知道JVM性能怎么调优吗?
系统崩溃前的一些现象:每次垃圾回收的时间越来越长,由之前的10ms延长到50ms左右,FullGC的时间也有之前的0.5s延长到4、5s;FullGC的次数越来越多,最频繁时隔不到1分钟就进行一次FullGC;年老代的内存越来越大并且每次FullGC后年老代没有内存被释放;之后系统会无法响应新的请求,逐渐到达OutOfMemoryError的临界值。转载 2016-09-27 10:49:38 · 3132 阅读 · 1 评论 -
使用jdk的jps、jstack工具检测代码问题,提高程序性能
今天给大家分享怎样利用jdk的jps和jstack工具结合定位代码的问题,提高程序的稳定性、健壮性和性能。通过jps命令查找到对应程序的进程,记录进程号,通过jstack命令把该进程号所在的程序的线程堆栈信息输出到文件,然后对文件里面的信息进行分析,找到原因并解决问题。原创 2016-09-26 12:40:52 · 3562 阅读 · 1 评论 -
The method getTextContent() is undefined for the type Node解决方法(eclipse)
在使用org.w3c.dom.Node.getTextContent()出现了The method getTextContent() is undefined for the type Node的提示,产生原因在j2ee项目中的xml-apis.jar下的org.w3c.dom干扰了Java的类查找,所以我们只需要把jdk的优先级调整到它之前就可以了。原创 2016-12-23 16:20:11 · 5105 阅读 · 0 评论 -
收集的java问题和技巧
下面的java编程的问题和技巧,部分是自己遇到的问题和总结,部分是自己在网上看到的有意思的问题。本篇文章内容将会不断的对自己收集的问题和技巧进行更新。1).List遍历过程中删除元素推荐做法使用Iterator遍历,但是不用list来remove。代码如下:List list = new ArrayList(); list.add(1); list.add(2); list.add(2);原创 2016-09-20 14:00:01 · 2228 阅读 · 0 评论 -
使用缓存cache 的大坑
这段时间发现系统取数据过程中,偶尔出现取数据错乱的问题,按逻辑应该取出A数据,结果取出了B数据。仔细检查了代码,发现代码逻辑没有问题,瞬间就蒙了,是哪里出现问题了呢。仔细想了一下,以前都没出现问题,自从加了缓存之后就偶尔出现了问题,那肯定问题是缓存有问题。原创 2017-05-18 11:48:46 · 4507 阅读 · 9 评论 -
使用google身份验证器实现动态口令验证
google身份验证器的原理是什么呢?客户端和服务器事先协商好一个密钥K,用于一次性密码的生成过程,此密钥不被任何第三方所知道。此外,客户端和服务器各有一个计数器C,并且事先将计数值同步。进行验证时,客户端对密钥和计数器的组合(K,C)使用HMAC(Hash-based Message Authentication Code)算法计算一次性密码,公式如下:HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))原创 2017-08-14 14:04:55 · 33723 阅读 · 28 评论 -
spring cloud中微服务调用出现 Can not parse date while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSS问题
最近在使用spring cloud开发微服务,在测试A服务调用B服务过程中出现了下面的异常: Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not deserialize value of ty...原创 2018-04-04 16:59:34 · 21697 阅读 · 0 评论 -
小小的session配置,说不定会影响你的web项目性能
以前公司做了一个web项目。发布以后,随着访问量的逐渐增大,发现JVM的内存使用比较多,full gc比较频繁,而且full gc后old区的大小变化不大。刚开始以为是JVM虚拟机的各项参数配置的不合理,我们就对JVM虚拟机的参数进行调整,调整后发现GC还是非常的频繁。funll GC频繁非常影响性能,我们把jvm的heapdump( Java 堆栈的快照)文件导出来,采用IBM HeapAnalyzer 的分析工具进行分析。经过分析发现堆中存在很多session对象。这些session对象占用空间原创 2016-08-17 11:31:11 · 2502 阅读 · 0 评论 -
在移动HTML5页面input类型采用number无法控制长度,以及右边显示难看的加减按钮
场景:这是之前做的移动web控件时遇到的问题。当时在我们控件的html5页面需要输入卡号、CV2、手机号、验证码等信息。大家都知道这些值都是数字。普通类型的输入框,当我们点击时,手机默认掉起的键盘中只有字母和符号,而我们这里只需要输入数字,我们只有切换一下才是数字键盘。后来我们采用了number类型的输入框,虽然能吊起手机的数字键盘,但是在有些手机上面会显示增加和减少按钮,同时有的手机原创 2015-08-02 20:40:01 · 13859 阅读 · 4 评论 -
使用java实现多种方式解决图片压缩的问题
前端时间在使用对图片加水印后,由于需加水印的图片的宽度和高度都非常的大,加了水印后图片从几百KB,变成了几MB,严重影响了图片在页面的加载速度!经过仔细的琢磨,决定先对图片进行压缩,再加水印。采用这种方式户,图片占用的空间没多大变化。下面对压缩的代码的分享 一、采用指定宽度、高度或压缩比例 的方式对图片进行压缩 方法: /** * 采用指定宽原创 2016-07-18 17:20:18 · 30885 阅读 · 9 评论 -
剖析java.lang.OutOfMemoryError: Java heap space产生原因及解决方法
解释: JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置。JVM在启动的时候会自动设置Heapsize的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。 可以利用JVM提供的-Xmn-Xms-Xmx等选项可进行设置。Heapsize的大小是YoungGeneration和TenuredGenerai转载 2015-11-04 17:11:39 · 2739 阅读 · 0 评论 -
在IE、fixfox、chrome等浏览器中ajax提交成功后,打开新标签页面被浏览器拦截问题
最近做了一个项目,在项目中涉及到先向后端发送ajax请求,根据ajax返回的结果来觉得是否跳转。刚开始我是这样做的。代码如下:提交的表单: 执行的js脚本:$.ajax({ type : 'post', url : "/pay/pay.do", data : { payChannel:payCha原创 2015-09-16 21:42:40 · 3372 阅读 · 1 评论 -
java中不同的ORM框架实现对数据库批量插入数据库的方式与技巧
1.jdbc方式中使用executeBatch实现JDBC中在做数据插入、更新、删除操作,可以使用executeBatch()方法减少数据库调用次数,如:Statement pstmt = conn.createStatement(); pstmt.addBatch("insert into settings values(3,'小米','女')"); pstmt.addBatch("原创 2015-11-13 18:22:49 · 3299 阅读 · 1 评论 -
spring事务(Transaction )报 marked as rollback-only异常的原因及解决方法
很多朋友在使用spring+hibernate或mybatis等框架时经常遇到报Transaction rolled back because it has been marked as rollback-only的异常,这个异常是怎么造成的呢,下面将给大家进行详细的分析。 这是专门写的一个造成该异常的代码:@Transactional public void add(Op原创 2015-10-27 23:23:48 · 82198 阅读 · 13 评论 -
自己整理的编码规范总结。(个人觉得很受用)
在很多人眼里面,我们写代码的就是码农,是屌丝。其实我们是艺术家,我们的艺术品就是代码。不知道有朋友和我有相同的看法。废话不多说,开始总结自己整理的一些编码规范: 1.在我们编写的每个类应该描写本类的作用,对于关系比较复杂的,我们应该描写清楚数据的存储过程。2.不管在接口类中方法描述的再详细,在我们的实现类的方法上都应该进行描述。这样其它人接手我们的项目时能够很原创 2015-10-29 22:28:09 · 1560 阅读 · 0 评论 -
解决在Safari、IE高版本中采用自定义选择文件按钮ajaxFileUpload不能上传问题
在web页面中常常使用文件上传功能,如果在页面中使用默认的文件输入框和选择按钮,那么样式看起来很丑,而且不同的浏览器中样式不一样。所以很多开发人员喜欢把文件类型的输入框采用display:none隐藏了,采用自定义的输入框和选择按钮,这样看起来与页面整体风格比较统一而且美观。但是如果采用ajaxFileUpload异步进行上传的话,在Safari、IE高版本中就会上传失败。那么问题改怎么解决呢原创 2015-11-16 17:56:07 · 4304 阅读 · 0 评论 -
spring事务常见问题、异常分析和解决方法
1.spring事务超时transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException; 可能原因1:spring事务设置的时间比较短。 解决方法:把spring事务设置长一点,如果事务中有很多复杂的查询及更新原创 2015-10-31 19:48:09 · 6988 阅读 · 0 评论 -
个人整理的web开发中常用的表单验证的正则表达式JS
1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字 一种在input输入框限制 元 第二种对于表单动态增加的方式,只能在js方法中验证。 var amount=$("#amount").val(); if (amount.search(/^\d*(?:\.\d{0,2})?$/)==-1) { alert("金额格式不对,最多有两位小数");原创 2015-11-19 11:17:49 · 3067 阅读 · 0 评论 -
解决java读取大文件内存溢出问题、如何在不重复读取与不耗尽内存的情况下处理大文件
1、传统的在内存中读取读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:123Files.readLines(newFile(path), Charsets.UTF_8); FileUtils.readLines(new转载 2015-11-19 15:50:14 · 16041 阅读 · 5 评论 -
剖析js对浮点数运算精度问题
js对浮点数操作精度会出现什么问题呢?比如: 10-9.99 =?。按照常理10-9.99应该等于0.01,但是通过js操作后结果不是0.01而是0.0099999999999999...大家不信可以尝试一下。再比如0.7+0.1等于多少呢,按照常理应该等于0.8,而在js操作时,结果却是0.7999999999999999。那么我们该怎样解决这个问题呢?原创 2015-11-27 10:40:14 · 2955 阅读 · 6 评论 -
不得不看的Java代码性能优化总结
前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考转载 2015-11-30 15:19:24 · 8844 阅读 · 9 评论 -
解决部分浏览器ajax提交数据,数据已改变,却后台数据接收数据还是上一次值的问题
最近在工作中遇到了QQ浏览器ajax提交数据,表单数据改变,却后台数据接收数据还是上一次值的问题,但是在其它浏览器中是正常的。代码如下:$.ajax({ url : "/secretkey/uploadKey", async:false, type : 'post', data : { merKey : $('#merKey').val(), keyType :原创 2015-12-02 15:15:31 · 5000 阅读 · 3 评论 -
web集群中常用的session同步解决方案及对比
随着网站的功能越来越多,用户量越来越庞大,单节点模式已经严重不能支撑整个系统的正常运作,轻则用户页面访问时间越来越慢,重则就会导致整个系统瘫痪。这时候就需要优化或调整目前的架构,大部分人就会采用各种负载均衡软件例如nginx、hproxy、LVS等,也有的采用分布式的方式把系统根据功能拆分成很多系统,也有的根据地域和网络不同来实现访问不同节点部署的系统,也有的大型高流量、高负载的系统把负载原创 2015-12-07 22:17:27 · 5631 阅读 · 4 评论 -
路由器升级千兆后xshell连接局域网服务器很慢和连接linux服务器mysql很慢问题
最近公司路由器升级成千兆后windows电脑xshell连接局域网linux服务器和使用Navicat连接mysql都很慢,刚开始以为是交换机还是使用百兆的原因,然后把交换机也升级了,还是不行。最后在网上查找了相关资料,找到了解决方法,如下: 1.检查网关是否正确。 1).通过grep GATEWAY /etc/sysconfig/networ...原创 2018-05-03 14:37:09 · 1007 阅读 · 0 评论