上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 33 下一页
摘要: 建议36: 使用构造代码块精炼程序 什么叫代码块(Code Block)?用大括号把多行代码封装在一起,形成一个独立的数据体,实现特定算法的代码集合即为代码块,一般来说代码块是不能单独运行的,必须要有运行主体。在Java中一共有四种类型的代码块: (1)普通代码块 就是在方法后面使用“{}”括起来的 阅读全文
posted @ 2016-04-22 20:43 SummerChill 阅读(492) 评论(0) 推荐(0) 编辑
摘要: Java中的数组是定长的,一旦经过初始化声明就不可改变长度,这在实际使用的时候非常不方便.比如要对一个班级的学生信息进行统计,因为我们不知道班级会有多少个学生(随时可能有退学,入学,转学),所以需要一个足够大的数组来容纳所有的学生.可以通过对数组扩容解决该问题. 代码如下: 上述代码中采用的是Arr 阅读全文
posted @ 2016-04-22 18:24 SummerChill 阅读(1343) 评论(0) 推荐(0) 编辑
摘要: 建议62:警惕数组的浅拷贝 一、分析 在日常工作中,我们会遇见很多数组的拷贝和复制的问题,但是在你使用系统提供的API进行编码的时候,无形中会留下浅拷贝的隐患。 一、分析 在日常工作中,我们会遇见很多数组的拷贝和复制的问题,但是在你使用系统提供的API进行编码的时候,无形中会留下浅拷贝的隐患。 在日 阅读全文
posted @ 2016-04-22 17:40 SummerChill 阅读(743) 评论(0) 推荐(0) 编辑
摘要: 我们经常使用ArrayList,Vector,Hashmap等集合,一般都是直接用new跟上类名声明出一个集合来,然后使用add,remove,等方法进行操作,而且因为它们是自动管理长度的,所以不用我们特别费心超长问题,这确实是一个非常好的优点,但也有我们需要注意的事项. 下面以ArrayList为 阅读全文
posted @ 2016-04-22 17:32 SummerChill 阅读(1685) 评论(0) 推荐(0) 编辑
摘要: 建议89:枚举项的数量限制在64个以内 为了更好的使用枚举,java 提供了两个枚举集合:EnumSet和EnumMap,这两个集合的使用都比较简单,EnumSet表示其元素必须是某一枚举的枚举项,EnumMap表示Key值必须是某一枚举的枚举项,由于枚举类的实例数量固定并且有限,相对来说EnumS 阅读全文
posted @ 2016-04-22 17:15 SummerChill 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 建议64:多种最值算法,适时选择. 对一批数据进行排序,然后找出其中的最大值或最小值,这是基本的数据结构知识。在Java中我们可以通过编写算法的方式,也可以通过数组先排序再取值的方式来实现。下面以求最大值为例,解释一下多种算法。 (1) 自行实现,快速査找最大值 先来看用快速査找法取最大值的算法,其 阅读全文
posted @ 2016-04-22 16:14 SummerChill 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 枚举和注解都是在Java1.5中引入的,虽然他们是后起之秀,但是功能不容小觑,枚举改变了常量的声明方式,注解耦合了数据和代码. 建议83:推荐使用枚举定义常量 一、分析 一、分析 常量的声明是每一个项目中不可或缺的,在Java1.5之前,我们只有两种方式的声明:类常量和接口常量。不过,在1.5版之后 阅读全文
posted @ 2016-04-22 00:30 SummerChill 阅读(4117) 评论(0) 推荐(0) 编辑
摘要: 建议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) 编辑
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 33 下一页