编写高质量代码:改善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 · 832 阅读 · 0 评论 -
java几种常用设计模式简单示例
java几种常用设计模式简单示例1.单例设计模式 所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生。具体实现步骤如下: (1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。 (2) 在其内部产生该类的实例化对象,并将其封装成pri转载 2018-03-20 22:50:07 · 180 阅读 · 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 · 183 阅读 · 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 · 162 阅读 · 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 · 215 阅读 · 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 · 662 阅读 · 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 · 171 阅读 · 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 · 162 阅读 · 0 评论 -
建议149:依赖抽象而不是实现
面向接口编程, 依赖倒置原则 Dependence Inversion Principle转载 2018-01-23 09:25:10 · 223 阅读 · 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 · 150 阅读 · 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 · 222 阅读 · 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 · 294 阅读 · 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 · 148 阅读 · 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 · 196 阅读 · 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 · 215 阅读 · 0 评论 -
Java设计模式-装饰器模式
Java设计模式-装饰器模式原创 2017年08月27日 18:30:34193装饰器设计模式顾名思义就是装饰某个对象,让一个功能单一的对象拥有一些其他的功能,这些功能的添加是动态的。用户可以随意的扩展原有对象的功能。一方面代替了继承,相对于继承带来的功能扩展,装饰器模式可以理解为动态的扩展,用户需要什么就扩展什么功能,非常灵活,而继承带来的缺点转载 2018-03-20 22:51:20 · 131 阅读 · 0 评论