我很早就过了SJCP,可是在实际项目中居然还是犯下了一个让我羞愧难当的错误,而且这些错误还产生了致使的影响,真是杯具啊!大家给我扔块西瓜皮吧,我得凉快下~~~
错误1:长整数赋值问题
系统有一个功能要产生邀请码,客户通过邀请码进行注册,但是邀请码要有过期时间,希望60天后过期,过期时间采用毫秒数:
long EXPIRED_DATE = 60 * 24 * 60 * 60 * 1000;
可是,测试人员告诉我,邀请码10天不到就过期了,我看了代码,百思不解,最后跟踪了代码,才发现
引用
60 * 24 * 60 * 60 * 1000
并不会自动转化为long,则是一个int,10天的毫秒数就超过了int的最大值,因此10天不到就过期了!
这儿犯下的错误是对整数字面值赋值时,默认为int型这个基础Java知识的忽视造成的.如果要让字面数字当成long,则必须在字面数字后显示加
L标识,即:
long EXPIRED_DATE = 60 * 24 * 60 * 60 * 1000L;
错误2:数值越界的问题
我写的一个模块允许开发者注册插件,为了控制插件执行的先后顺序,因此我写了一个Orderable接口,插件实现该接口以决定执行的先后顺序(orderNo越小越先执行):
public interface Orderable {
/**
* 排序号,越小越在前面
*/
int getOrdreNo();
}
然后我写了一个Comparator,以便可以通过java.util.Collections的
引用
sort(List<T> list,Comparator<? super T> c)
对插件List进行排序。我的Comparator是这样写的:
public class OrderableComparator implements Comparator {
private static OrderableComparator intance = new OrderableComparator();
private OrderableComparator() {
}
public int compare(Object obj1, Object obj2) {
int order1 = Integer.MAX_VALUE;
int order2 = Integer.MAX_VALUE;
if (obj1 instanceof Orderable) {
order1 = ((Orderable) obj1).getOrdreNo();
}
if (obj2 instanceof Orderable) {
order2 = ((Orderable) obj2).getOrdreNo();
}
return order1 - order2;//① 大家注意这儿是出鬼的地方!!!
}
public static OrderableComparator getIntance() {
return intance;
}
}
但是一个开发者咆哮地告诉我,它的插件的getOrderNo()已经设置为Integer.MIN_VALUE,但是却在最后一位执行!!!
跟踪了代码,才发现
是数值越界的忽视造成了低级错误,下面具体分析一下,如Plugin1的getOrdreNo()为Integer.MIN_VALUE,而Plugin2的getOrdreNo()为1,可是大家想想下面的计算值是多少呢?
引用
Integer.MIN_VALUE - 1
是
2147483647!!
找到问题后改起来是不费工夫的:
public int compare(Object obj1, Object obj2) {
int order1 = Integer.MAX_VALUE;
int order2 = Integer.MAX_VALUE;
if (obj1 instanceof Orderable) {
order1 = ((Orderable) obj1).getOrdreNo();
}
if (obj2 instanceof Orderable) {
order2 = ((Orderable) obj2).getOrdreNo();
}
if(order1 > order2){
return 1;
}else if(order1 < order2){
return -1;
}else{
return 0;
}
}
唉,这两个CASE居然是最近几天连接发生了,真是百年成之不足,一旦败之有余啊。看来要恶补一下Java基础并时刻牢记啊!!
分享到:
相关推荐
- "羞愧难当"的戏曲段落讲述了四千岁的将领在战场上的失败以及如何通过策略引诱姜维归降的故事,揭示了古代战争中的智谋和人性。 - "洼洼地里好庄稼"是一段描绘农村生活的戏词,展现了农业机械化带来的便利和农民...
【标题】: "初中语文文摘社会在一首诗面前羞愧难当" 【描述】: "这篇文章通过个人经历和感受,揭示了城市居民对于农村生活的认知与情感隔阂,以及社会中存在的城乡差距问题。" 【标签】: "资料" 【内容解析】: ...
我甚至在新浪前端面试的时候胡说一通,现在想来真是羞愧难当! 没有深入了解就信口开河实在难堪大任。 最后被拒也是理所当然。 误区纠正 首先纠正误区,Angular并不是周期性触发藏检查。 只有当UI事件,ajax请求或者...
【教师易犯的150个错误】 在教育过程中,教师的行为和言语对学生的成长有着深远的影响。以下从文档中提取的三个错误案例,揭示了教师在教学中可能忽视的关键点,以及如何改进的建议。 错误 61 - 无视教育保护 在...
在不同的语境下,"羞愧"可以被不同的近义词替代,以增加表达的丰富性和多样性。 首先,"惭愧"是"羞愧"的一个近义词,它们都有对自己行为的负面评价和自我反省的意思。例如:"当我发现我误解了朋友的好意时,我深感...
3. **自我反思**:作者在事情过后能够认识到自己的错误,并感到羞愧,这是一种自我反省的能力。在IT行业,当项目出现问题时,勇于承认错误并寻求改进是非常重要的。 4. **道德教育**:对班长的不尊重反映出作者在...
学生意识到学校的规定和老师的教诲的重要性,决定要牢记教训,改正错误,避免再次犯同样的错误。 这两篇检讨书都体现了学生对错误的认识和自我反思的过程,强调了遵守纪律和尊重教育的重要性。它们提醒所有学生,...
现在想想实在是羞愧难当,当时不早些把这个代码传上来。 当然当时是因为为了快速达成目的,非常流氓的decompile了一下,直截了当,自觉羞愧难当,所以也是一直没放出来。。 此次也算了却一事啦。。。。。。 ##原型 ...
反义词则指的是意思相反的词语,例如“上”与“下”,它们在语境中常常用来形成对比。 在提供的部分内容里,我们可以看到一系列近义词和反义词的实例,涉及多个小学语文课文。例如,"惭愧"的近义词可能是"羞愧",这...
这篇小学教案针对的是二年级语文上册的一篇课文——《面对夜莺感到羞愧》。教案的核心目标是帮助学生理解和欣赏中国汉字的形体美,同时教育他们如何正确、流利地阅读课文,并通过课文内容培养环保意识。教学内容围绕...
本文讨论了13至17岁中学生对于内疚、羞愧、尴尬等消极自我意识情绪理解能力的研究,涉及了情绪心理学、发展心理学、青少年心理学等众多领域。 首先,文章提到了消极自我意识情绪的含义和重要性。自我意识情绪(self...
这种情况下,不应将过去的行为视为错误,因为这会导致内疚和责备,阻碍学习。 5. 宽恕的意义:为了克服这种内疚感,我们需要自我宽恕。宽恕是消除情感债务的过程,它有助于我们从经验中学习,而不是陷入自责。 6. ...
这种拓展训练有助于提升学生的想象力和解决问题的能力,同时强化环保教育。 综上所述,这篇学案旨在通过生字学习、词语理解、朗读训练、课文分析和情境模拟等方式,全面培养二年级学生的基础语文能力,同时注重价值...
1面对夜莺感到羞愧——学习ppt课件
4. 自我反省与改正:犯错误后,学生需要进行深入的自我反省,认识到错误的严重性,并承诺改正,努力提升自我,避免再次犯同样的错误。 5. 责任意识:学生应意识到自己的行为不仅关乎个人,还涉及到对他人(如同学、...
考试故事:我写了篇令自己羞愧万分的高考作文.doc
例如,用“惭愧”的近义词“羞愧”造句:“他做错了事,感到非常羞愧。”反义词“自豪”的造句:“她获得了奖学金,心中充满了自豪。” 这些近义词和反义词的学习有助于提高学生的阅读理解能力,增强他们的语言表达...
这篇检讨书首先表达了作者对于犯错误的懊悔和自责,认识到错误的严重性,并对自己的行为感到羞愧。作者提到了学校对于规则的强调,但自己未能严格遵守,这是对老师和学校规章制度的不尊重。接着,作者分析了错误的...
文档中的内容主要涉及小学语文的学习材料,特别是关于近义词和反义词的整理。近义词是指意思相近或相同的词语,反义词则是指意思相反的词语,这些都是语言学习中基础但重要的部分,有助于提升学生的词汇理解和语言...