简单来说当需求需要使用大批量的字符串拼接时不要用String的+号拼接,建议使用StringBuilder.代码示例如下
public static void main(String[] args) {
long begin = System.currentTimeMillis();
String sum = "";
for(int i =0; i<=10000;i++){
sum = sum + i;
}
long end = System.currentTimeMillis();
System.out.println("String总耗时:"+(end - begin));//446ms
//快速
long begin1 = System.currentTimeMillis();
StringBuilder stringBuilder = new StringBuilder();
for(int i =0; i<=10000;i++){
stringBuilder.append(i);
}
long end1 = System.currentTimeMillis();
System.out.println("StringBuilder总耗时:"+(end1 - begin1));//0ms
//安全
long begin2 = System.currentTimeMillis();
StringBuffer stringBuffer = new StringBuffer();
for(int i =0; i<=10000;i++){
stringBuffer.append(i);
}
long end2 = System.currentTimeMillis();
System.out.println("StringBuffer总耗时:"+(end2 - begin2));//2ms
}
当我们在实例化对象的时候要尽量做到面向接口编程,这样当我们需要更换实现对象的时候,会更加便捷
ArrayList arrayList = new ArrayList();
List list = new ArrayList();
代码示例1
public class Test {
public static void main(String[] args) {
//方式1:
Class<? extends Test> aClass = new Test().getClass();
//方式2:
try {
Class clazz = Class.forName("com.zengtengpeng.test.Test");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//方式3:
Class<Test> testClass = Test.class;
}
}
引用自William A.Wulf
引用自Donald E.Knuth
引用自M.A.Jackson
总结:大佬们叫我们不要优化的前提是我们的代码已经遵守了我们定制的所有规则,可以参考阿里巴巴开发规范手册.在这个前提下,其实已经没有什么可以过多优化的空间了,那么久不要再进行优化了 不要费力去编写快速的程序,应该努力去编写好的程序
推荐官方命名文档 引用该文档的一句话来进行总结:“如果长期养成的习惯与此不同,那么请不要盲目的去遵从这些命名惯例”
在日常开发规范当中,我们要尽量使用对应错误码,使用固定的错误格式来替代异常返回,这样更有益于程序的规范
总而言之,如果在JDK当中已经存在这种类型的异常了,那么久不要再自己重新去定义一个新的异常来表示