摘要: 建议60:性能考虑,数组是首选 一、分析 数组在实际的系统开发中使用的越来越少,我们通常只有在阅读一些开源项目时才会看到它们的身影,在Java中它确实没有List、Set、Map这些集合使用起来方便,但是在基本类型处理方面,数组还是占优势的,而且集合的底层也是通过数组实现。 二、场景 比如对一个数据 阅读全文
posted @ 2016-04-21 20:11 SummerChill 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 建议21: 用偶判断,不用奇判断 输入: 1 2 0 -1 -2 得到结果: 1 >奇数2 >偶数 -1 >偶数-2 >偶数 Java中的取余(%标识符)算法,模拟代码如下: 当输入-1的时候,运算结果是-1当然不等于1了,所以它就被判定为偶数了. 判断是否是偶数即可: (i%2)==0?"偶数": 阅读全文
posted @ 2016-04-21 17:14 SummerChill 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 建议15:break万万不可忘 此类问题发生得非常频繁,但也很容易发现,只要做一下单元测试(Unit Test),问题立刻就会被发现并解决掉,但如果是在一堆的case语句中,其中某一条漏掉了break关键字,特别是在单元测试覆盖率不够高的时候(为什么不够高?在大点的项目中蹲过坑、打过仗的兄弟们可能都 阅读全文
posted @ 2016-04-21 16:37 SummerChill 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 建议16: 易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP、Ruby、Groovy、JavaScript等,这些“入侵者”都有一个共同特征:全是同一类语言—脚本语言,它们都是在运行期解释执行的。为什么Java这种强编译型语言会需要这些脚本语言呢?那是因为脚本语言的三大特 阅读全文
posted @ 2016-04-21 16:28 SummerChill 阅读(1168) 评论(0) 推荐(0) 编辑
摘要: 建议17: 慎用动态编译 // 这篇博文暂时理解不透......... 动态编译一直是Java的梦想,从Java 6版本它开始支持动态编译了,可以在运行期直接编译.java文件,执行.class,并且能够获得相关的输入输出,甚至还能监听相关的事件。不过,我们最期望的还是给定一段代码,直接编译,然后运 阅读全文
posted @ 2016-04-21 16:16 SummerChill 阅读(9593) 评论(0) 推荐(0) 编辑
摘要: 建议18: 避免instanceof非预期结果 instanceof是一个简单的二元操作符,它是用来判断一个对象是否是一个类实例的,其操作类似于>=、==,非常简单,我们来看段程序,代码如下: 就这么一段程序,instanceof的所有应用场景都出现了,同时问题也产生了:这段程序中哪些语句会编译通不 阅读全文
posted @ 2016-04-21 16:06 SummerChill 阅读(2241) 评论(0) 推荐(0) 编辑
摘要: 建议19: 断言绝对不是鸡肋 在防御式编程中经常会用断言(Assertion)对参数和环境做出判断,避免程序因不当的输入或错误的环境而产生逻辑异常,断言在很多语言中都存在,C、C++、Python都有不同的断言表示形式。在Java中的断言使用的是assert关键字,其基本的用法如下: 在布尔表达式为 阅读全文
posted @ 2016-04-21 15:51 SummerChill 阅读(28141) 评论(6) 推荐(13) 编辑
摘要: 建议20: 不要只替换一个类 我们经常在系统中定义一个常量接口(或常量类),以囊括系统中所涉及的常量,从而简化代码,方便开发,在很多的开源项目中已采用了类似的方法,比如在Struts2中,org.apache.struts2.StrutsConstants就是一个常量类,它定义了Struts框架中与 阅读全文
posted @ 2016-04-21 15:00 SummerChill 阅读(1019) 评论(0) 推荐(1) 编辑