
java
文章平均质量分 51
Rubenyu
这个作者很懒,什么都没留下…
展开
-
nginx 自定义 header
上周末收到安全组童鞋的邮件,说是输出的时候有安全缺陷. 表现是在IE8之下,如果内容中有脚本的话,就会被直接执行掉,那么如果有攻击代码,这就杯具了…. 之所以会在IE8之下出现这个问题,是因为IE8似乎支持个什么mhtml.可以直接解读一些base64之后的内容,同时还能解读邮件转载 2011-08-26 14:19:30 · 7086 阅读 · 0 评论 -
不可变类型
错误案例 【现象描述】用BigInteger相加,永远返回0 【错误代码】 BigInteger total = BigInteger.ZERO;total.add(new BigInteger("1"));total.add(new BigInteger("10"));S转载 2011-07-12 08:18:54 · 876 阅读 · 0 评论 -
深入了解DCL
1.什么是DCL DCL:double-checked locking 中文一般译为“双重检查锁” 通常其代码形式如下: class SomeClass { private Resource resource = null;public Resource getResource转载 2011-07-13 09:33:09 · 998 阅读 · 0 评论 -
调用搜索引擎产生的性能问题
错误严重度 事故级或故障 A 错误案例 【现象描述】 offer管理页面搜索需求中,调用Offer搜索APi时一次返回1000条Offer,在并发量多的时候,导致应用服务器等待,load增高。 【错误代码】 offerParam.setCount(1000);错误分析 在调用O转载 2011-07-13 08:26:27 · 548 阅读 · 0 评论 -
日志打印
错误严重度 故障C 错误案例 多线程日志输出 在一个比较长的业务日志中,采用普通的Logger.info(“xxxx”);打印多条记录。 错误分析 多线程日志打印过程,虽然logger本身是线程安全的,但在多线程模式下记录业务日志就会出现混乱。很不利于后续的日志分析 正确用法 多转载 2011-07-13 08:23:31 · 608 阅读 · 0 评论 -
Java字符转义问题
错误案例 图片验证在url包含特殊字符比如”abc%2B”的情况下始终无法通过 错误分析 开始以为是验证码服务器的问题,结果和平台那边联调的时候发现我们传过去的abc%2B 变成了abc%252B,这个当然有问题,我们起初认为了httpclient的版本问题,我们怀疑httpcl转载 2011-07-13 08:13:34 · 1733 阅读 · 0 评论 -
Collection转换为数组时的API使用不当
错误严重度 性能问题 错误案例 【现象描述】 【错误代码】 (不算错误,只是性能低下) String[] mids = (String[]) list.toArray(new String[0]);错误分析 请阅读 AbstractorCollection中的 public转载 2011-07-13 08:11:35 · 562 阅读 · 0 评论 -
高性能的数据查找方式
错误案例 当我们需要从一些会员中查找指定的会员,并且根据这个会员的属性做些操作。或者类似的数据筛选情况下。例如: List results = searchResultList();//此时查询出的结果是1000,并且每个对象比较大String [] names = {"gar转载 2011-07-12 08:43:27 · 742 阅读 · 0 评论 -
特殊类目校验导致求购Offer发布抛NPE
错误严重度 故障C 错误案例 现象描述:新发求购Offer时发现保健食品二级类目下的一些Offer无法发布、而其他类目的求购Offer及所有供应Offer都能正常发布错误分析 保健食品二级类目下的供应信息发布时要做一些特殊校验、如国家颁布的批准文号要符合特定的格式才是合法的,在这转载 2011-07-13 08:30:46 · 574 阅读 · 0 评论 -
过滤HTML标签导致死循环
错误严重度 故障A 错误案例 以下是资讯VCUtil.java类里面一个同事加的一个方法,而这个类又被在页面上广泛使用。 //去掉单引号、双引号和红色htmltag public static String filterToHtml(String str){转载 2011-07-13 08:20:39 · 1537 阅读 · 0 评论 -
价格精度问题
错误案例 (int)(Float.parseFloat(price)*100) 这样处理,对于8.90这样的价格会转化成889,实际应该是890才对 (int)(Double.parseDouble(price)*100) ,对于8.90转化的结果是对的,但是对于 1.15会把它转载 2011-07-11 08:54:29 · 1452 阅读 · 1 评论 -
循环体内包含了大量没有必要在循环中处理的语句或获取数据库连接或进行不必要的try-catch操作
错误案例 public class CheckCycle{ public void cycleInfo() { String[] Str = null; //获取各个部件的通知地址 Str = outNotify原创 2011-07-11 08:48:26 · 1495 阅读 · 0 评论 -
对象相等判断时,覆写equals方法时同时覆写hashcode方法
错误案例 【现象描述】里面判断容器应该要包含的对象,实际上却没有 【错误代码】 class T { private String str; T(String str) { this.str = str; } public boolean equals(原创 2011-07-12 08:26:55 · 722 阅读 · 0 评论 -
List对象的空指针问题
错误案例 【现象描述】 抛出空指针异常。 【错误代码】 List offerIDList =loadOfferIDList()//(null);for(Long offerID:offerIDList){ ......}错误分析 空值针异常出现的原因主要是遍历列表对转载 2011-07-12 08:36:28 · 2196 阅读 · 0 评论 -
一位软件工程师的6年总结
又是一年毕业时”,看到一批批学子离开人生的象牙塔,走上各自的工作岗位;想想自己也曾经意气风发、踌躇满志,不觉感叹万千……本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标。本文主要是关于软件开发人员如何提高自己的软件专业技术方面的具转载 2011-08-18 08:38:01 · 1096 阅读 · 1 评论 -
JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介
JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。一、简介线程池类为 java.util.concurrent转载 2011-08-09 21:45:02 · 2901 阅读 · 0 评论 -
BeanUtils代码改写成BeanCopier时出现的问题
错误案例 短信平台大量的使用到了org.apache.commons.beanutils.BeanUtils的copyProperties(Object dest, Object orig)方法。而这个方法存在性能问题,在性能优化小组的建议下改使用net.sf.cglib.bea转载 2011-07-20 08:51:16 · 5648 阅读 · 0 评论 -
session详解
目录:一、术语session二、HTTP协议与状态保持三、理解cookie机制四、理解session机制五、理解javax.servlet.http.HttpSession六、HttpSession常见问题七、跨应用程序的session共享八、总结参考文档一、术语session在转载 2011-07-14 19:04:15 · 685 阅读 · 0 评论 -
HTTP协议详解(真的很经典)
转自:http://blog.youkuaiyun.com/gueter/archive/2007/03/08/1524447.aspxAuthor :Jeffrey引言 HTTP是一个属于应用层的面向对象的协议,转载 2011-07-14 10:49:49 · 827 阅读 · 0 评论 -
JAVA内存泄漏
错误严重度 如果内存泄漏面积过大,将会导致B类或A类故障 错误案例 public class Stack{ private Object[] elements; private int size = 0; public Stack(int i)转载 2011-07-13 08:08:37 · 482 阅读 · 0 评论 -
代码里直接返回对象造成的可读性、扩展性以及性能问题
错误严重度 不会引起较大故障,但对代码可读性、扩展性以及性能会产生一定影响 错误案例 代码里直接返回值,例如获得一个boolean值,例如: ……return true;或者return false;……错误分析 一般来说,类可以提供一个公有的静态工厂方法,所谓静态工厂转载 2011-07-12 08:51:02 · 794 阅读 · 0 评论 -
两个对象比较大小时出现的问题
错误案例 【现象描述】 两个Integer类型的数据,进行大小比较,发现无法进行正确的比较 【错误代码】 Comparator c = new Comparator() { public int compare(Integer i1, Integer i2) {转载 2011-07-12 08:31:25 · 830 阅读 · 0 评论 -
返回空list的方式
错误案例 代码中需要返回空list时,一般会采用的方式: public List returnEmptyList(){ return new ArrayList(); }错误分析 public static void main(String[] ar转载 2011-07-12 08:16:57 · 16546 阅读 · 0 评论 -
不能在finally块使用return
错误案例 【现象描述】 try-catch块中永远返回finally中return的值【错误代码】 static boolean f() { try { return true; } finally { return false; }}错原创 2011-07-12 08:11:45 · 967 阅读 · 0 评论 -
Jdk中 String类的getBytes方法的编码问题
错误案例 这几天生意经的taglist的页面上一直存在缓存不一致的情况,而在本地调试始终不能重现线上的问题。 系统中出现了这样一种情况:在我们新增“doclist_84_饮食健康”的静态位的时候提示已经存在,但在memcached中并不存在。 查看代码发现在把一个key放到Mem转载 2011-07-13 08:16:11 · 1994 阅读 · 0 评论 -
数据库操作、IO操作的资源没有及时释放
错误案例 public class ReleaseRes{ public void releaseDB () { Connection conn = null; APLResultSet rs = null; St原创 2011-07-11 08:42:07 · 2697 阅读 · 0 评论 -
字符串和多个char类型的字符相加比较问题
错误案例 【现象描述】表面看上去内容一样的字符串和单个字符拼接比对,结果永远为false 【错误代码】 "34".equals('3' + '4') 错误分析 当且仅当+操作符的操作数中至少有一个是String类型时,才会执行字符串连接操作;否则,执行加法。 如:在本例中'3'转载 2011-07-11 09:05:37 · 1071 阅读 · 0 评论 -
善于利用工具类库
错误案例 现象描述:某PLA在代码review时,发现有一段代码相当复杂,看不明白是什么用途,最后找对应的开发了解,发现是要取两个集合中的交集。 错误分析 for(int i=0;i<idArray.length;i++){ while(checkedIdIt.hasNe原创 2011-07-08 08:59:34 · 722 阅读 · 0 评论 -
Bean之间的copy用BeanCopier
错误案例 现象描述:性能测试时,发现CPU占有率很高,经过jprofiler的分析,发现CPU大部分被BeanUtils占用了,成了性能瓶颈。 错误分析 工作中,经常会碰到两个bean之间的拷贝,如MemberDO拷贝到MemberVO BeanUtils.copyPropert转载 2011-07-08 08:39:04 · 10718 阅读 · 1 评论 -
不当事务代码引起的数据库死锁问题
错误案例 DBA反映IBANK线上数据库报警,检测到死锁,跟踪到发生死锁等待的两条SQL语句分别为: UPDATE WP_IMAGE_SORT SET GMT_MODIFIED = SYSDATE,IMAGE_IDS = #imageIds# || IMAGE原创 2011-07-06 09:11:13 · 5623 阅读 · 0 评论 -
表增加字段的兼容性问题
错误案例 短信平台长短信小需求预发布时,发现短信的发送速度忽然变得很慢。 检查webx.log日志: Caused by: com.ibatis.common.exception.NestedRuntimeException: Error setting pr原创 2011-07-06 08:49:42 · 1492 阅读 · 0 评论 -
Long和long在 IBatis里面的误用
错误案例 现象描述: 在DO中有一属性imageSize,定义成Long(Java的普通类)和long(Java里面的基本数据类型)在update操作时会有区别, <![CDATA[ IMAGE_SIZE = #imageSiz原创 2011-07-06 08:17:05 · 3306 阅读 · 0 评论 -
用StringBuffer/StringBuilder对字符串进行拼接
错误案例 在循环中大量使用字符串连接,会导致不必要的内存消耗和频繁的垃圾回收。 错误分析 错误的写法: String str = "";for (int i = 0; i < 1000; i++) { str += " " + i;}System.out.print原创 2011-07-08 09:12:19 · 2035 阅读 · 0 评论 -
也谈阿里巴巴面试题_身高排队问题
<br /> 首先申明,我没有去阿里巴巴面试这个题目的,我是看到坛子里有人贴出问题的。我想如果是我去面试,我该怎么解决,如何去分析这个问题,这个问题背后隐藏的是什么哪类问题,花了一个晚上终于把它给弄出来了,不足之处大家给意见。<br /><br /> 题目是这样的:12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种? <br /><br /> 初看这个问题,如果是应试,还真有点摸不着头脑,但是静心想想,还是有规律的,一般面试题转载 2011-04-10 09:37:00 · 1110 阅读 · 0 评论 -
java内部类使用介绍
<br />定义在一个类内部的类叫内部类,包含内部类的类称为外部类。<br /><br />内部类可以声明public、protected、private等访问限制,可以声明为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。<br /><br />static的内部类行为上象一个独立的类,非static在行为上类似类的属性或方法且禁止声明static的方法。<br /><br />内部类可以访问外部类的所有方法与属性,但static的内部类只转载 2011-04-05 12:38:00 · 621 阅读 · 0 评论 -
java面试题大全-基础方面
<br />Java基础方面: <br />1、作用域public,private,protected,以及不写时的区别<br />答:区别如下:<br />作用域 当前类 同一package 子孙类 其他package<br />public √ √ √ √<br />protected √ √转载 2011-04-05 10:18:00 · 601 阅读 · 0 评论 -
JAVA面试题
AVA相关基础知识1、面向对象的特征有哪些方面1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)转载 2011-04-05 10:17:00 · 594 阅读 · 0 评论 -
深入探讨在集群环境中使用 EhCache 缓存系统
<br />EhCache 缓存系统简介<br />EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。<br />下图是 EhCache 在应用程序中的位置:<br /><br />图 1. EhCache 应用架构图<br /><br />EhCache 的主要特性有:快速;简单;多种缓存策略;缓存数据有两级:内存和磁盘,因此无需担心容量问题;缓存数据会在虚拟机重启的过程中写入磁盘;可以通过 RMI、可插入 API 等转载 2011-02-22 22:38:00 · 1797 阅读 · 0 评论 -
serialVersionUID
在Java中,软件的兼容性是一个大问题,尤其在使用到对象串行性的时候,那么在某一个对象已经被串行化了,可是这个对象又被修改后重新部署了,那么在这种情况下, 用老软件来读取新文件格式虽然不是什么难事,但是有可能丢失一些信息。serialVersionUID 来解决这些问题,新增的s转载 2011-07-08 09:07:31 · 1068 阅读 · 0 评论 -
缓存的误用
错误案例 代码: //首先从缓存中获取推荐相册列表Long[] albumIds = (Long[]) recommendAlbumIdsCache.get(memberId);if (albumIds == null) { // 如果为空,则取数据库原创 2011-07-06 08:11:08 · 461 阅读 · 0 评论