
编写高质量代码:改善Java程序的151个建议
evilcry2013
这个作者很懒,什么都没留下…
展开
-
建议47:在equals中使用getClass进行类型判断
package com.gcq.mine.advisor; public class Client11 { public static void main(String[] args) { Employee e1 = new Employee("张三",100); Employee e2 = new Employee("张三",1001); Person p1 = new转载 2018-01-22 09:32:03 · 856 阅读 · 0 评论 -
java几种常用设计模式简单示例
java几种常用设计模式简单示例 1.单例设计模式 所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生。具体实现步骤如下: (1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。 (2) 在其内部产生该类的实例化对象,并将其封装成pri转载 2018-03-20 22:50:07 · 219 阅读 · 1 评论 -
建议46: equals应该考虑null值情景
import java.util.ArrayList; import java.util.List; public class Client10 { public static void main(String[] args) { Person p1 = new Person("张三"); Person p2 = new Person(null); List l =new转载 2018-01-19 17:16:33 · 198 阅读 · 0 评论 -
建议55:注意字符串的位置
import java.util.ArrayList; import java.util.List; public class Client9 { public static void main(String[] args) { String str1 = 1 + 2 + " apples"; String str2 = "apples:" + 1 + 2; Syste转载 2018-01-19 16:07:40 · 178 阅读 · 0 评论 -
建议52:推荐使用String直接量赋值
public class Client8 { public static void main(String[] args) { String str1= "中国"; String str2 = "中国"; String str3 = new String("中国"); String str4 = str3.intern(); String str5 = str3 + " ";转载 2018-01-19 15:29:24 · 231 阅读 · 0 评论 -
建议1:不要在常量和变量中出现容易混淆的字母
/** * * 数字后跟小写字母l的问题 * */ public class Client7 { public static void main(String[] args) { long i = 1l; System.out.println("i的两倍是:" + (i+i)); } }转载 2018-01-19 14:49:57 · 700 阅读 · 0 评论 -
建议137:调整JVM参数以提升性能
(2)调整堆内存中各分区的比例 JVM的堆内存包括三部分:新生区(Young Generation Space)、养老区(Tenure generation space)、永久存储区(Permanet Space),其中新生成的对象都在新生区,它又分为 伊甸区(Eden Space)、幸存0区(Survivor 0 Space)和幸存1区(Suvivor 1Space),当再程序中使用了new转载 2018-01-23 11:07:01 · 190 阅读 · 0 评论 -
建议133:若非必要,不要克隆对象
package com.gcq.mine.advisor; /** * * @author Phenix 2011-6-29 */ public class Client18 { private static class Apple implements Cloneable { public Object clone() { try { return super转载 2018-01-23 09:35:57 · 175 阅读 · 0 评论 -
建议149:依赖抽象而不是实现
面向接口编程, 依赖倒置原则 Dependence Inversion Principle转载 2018-01-23 09:25:10 · 259 阅读 · 0 评论 -
建议39:使用匿名类的构造函数
import java.util.ArrayList; import java.util.List; public class Client17 { public static void main(String[] args) { List l1 = new ArrayList(); List l2 = new ArrayList(){}; List l3 = new Arra转载 2018-01-23 09:06:03 · 176 阅读 · 0 评论 -
建议38:使用静态内部类提高封装性
package com.gcq.mine.advisor; /** * * @author Phenix * 2011-3-24 */ public class PersonX{ //姓名 private String name; //家庭 private Home home; //构造函数设置属性值 public PersonX(String _name)转载 2018-01-22 11:09:23 · 245 阅读 · 0 评论 -
建议32:静态变量一定要先声明后赋值
package com.gcq.mine.advisor; public class Client15 { public static int i=1; static{ i=100; } public static void main(String[] args) { System.out.println(i); } }转载 2018-01-22 10:36:36 · 315 阅读 · 0 评论 -
建议31:在接口中不要存在实现代码
package com.gcq.mine.advisor; public class Client14 { public static void main(String[] args) { //调用接口的实现 B.s.doSomething(); } } //在接口中存在实现代码 interface B{ public static final S s = ne转载 2018-01-22 10:18:41 · 169 阅读 · 0 评论 -
建议48:覆写equals方法必须覆写hashCode方法
package com.gcq.mine.advisor; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.builder.HashCodeBuilder;转载 2018-01-22 10:05:58 · 219 阅读 · 0 评论 -
建议49:推荐覆写toString方法
package com.gcq.mine.advisor; public class Client12 { public static void main(String[] args) { System.out.println(new Person("张三")); } } class Person{ private String name; public Perso转载 2018-01-22 09:37:44 · 239 阅读 · 0 评论 -
Java设计模式-装饰器模式
Java设计模式-装饰器模式 原创 2017年08月27日 18:30:34 193 装饰器设计模式顾名思义就是装饰某个对象,让一个功能单一的对象拥有一些其他的功能,这些功能的添加是动态的。用户可以随意的扩展原有对象的功能。一方面代替了继承,相对于继承带来的功能扩展,装饰器模式可以理解为动态的扩展,用户需要什么就扩展什么功能,非常灵活,而继承带来的缺点转载 2018-03-20 22:51:20 · 145 阅读 · 0 评论