1. 什么是好的代码?
高效正确
便于维护
简洁清晰
2. 如何做?
让代码比你来时更干净
做有意义的命名
别重复自己
注意代码工整
记住:不要把自己当程序员,要把自己当成艺术家,出自你手的代码都是一件艺术品,尽量让她优雅。
3.原则
第一条,关于注释和文档
好的代码不需要注释和文档(不包括设计文档)。
我们要做的,尽量让你的代码简单易懂,如果实在做不到,一定添加简单易懂的注释文字。不要繁琐的长篇大论。
记住:代码里一切注释和文档都是浮云。
第二条,关于代码结构
不要为了实现需求不停的堆代码,讲究下技巧
多用面向对象和面向接口编程,以提高代码的扩展性和可维护性
多用用设计模式,以提高代码的可阅读性和灵活性,避免重复你的代码
记住:简单,优雅,清晰的代码是最能减轻工作量和减少出现问题的方法。
第三条,关于测试
如果可能,尽量让你所有的方法都有测试代码
如果可能,应用测试驱动开发
如果可能,尽量在发布程序的之前运行测试用例并保证没有问题
记住:没有测试的代码都是浮云
4. Tips
1.避免重复初始化。
test1
HashMap map = new HashMap();
public Test1(){
// map = new HashMap();
}
public static void main(String[] args) {
int TT = 1000000;
long t1 = System.currentTimeMillis();
for(int i=TT; i>=0; --i) {
Test1 t = new Test1();
}
System.out.println(System.currentTimeMillis()-t1);
}
重复初始化时间:187 172
正常初始化时间: 94 93
test2
public final static int max(int a, int b) {
return (a>b)? a:b;
}
public static void main(String[] args) {
final int TT = 1000000;
int a = 5, b=10;
int c;
long t1 = System.currentTimeMillis();
for(int i=TT; i>=0; --i) {
c = max(a, b);
}
System.out.println(System.currentTimeMillis()-t1);
long t2 = System.currentTimeMillis();
for(int i=TT; i>=0; --i) {
c = (a>b)? a:b;
}
System.out.println(System.currentTimeMillis()-t2);
}
final 方法会使用内联方式进行编译,这样会提高性能,不过貌似新的JVM做了优化,第一次运行时会慢一些,以后非final和final性能差不多。
test3
NewObject object=new NewObject();
int value;
if(i>0) {
value=object.getValue();
}
优化后:
int value;
if(i>0){
NewObject object = new NewObject();
Value = object.getValue();
}
就近原则,尽量采用Lazy loading策略,减少内存开销
test4
List?alist=uSvr.getUserinfoList();
for(int i=0;i<alist.size();i++){
。。。
}
优化后:
for(int i=0,p=alist.size();i<p;i++){
。。。
}
循环操作时,尽量使用局部变量,减少内存寻址时间
15 16
0 0
test5
long t1 = System.currentTimeMillis();
for (int i = 0; i < 10000000; i++) {
Test1 t = new Test1();
}
System.out.println(System.currentTimeMillis() - t1);
long t2 = System.currentTimeMillis();
Test1 t = null;
for (int i = 0; i < 10000000; i++) {
t = new Test1();
}
System.out.println(System.currentTimeMillis() - t2);
减少循环New变量的操作,这种做法会在内存中保存N份这个对象的引用,会浪费大量的内存空间,增加GC
64 63
47 47
test6
避免在做最终条件比较时采用方法返回值的方式进行判断,这样做将增大系统开销,降低性能
while(isTrue()) {
...
}
优化后:
boolean isTrue= isTrue();
while(isTrue) {
...
}
test7
尽量避免在循环体中使用try-catch块,最好在循环体外进行try-cache以提高性能
do{
try{
...
} catch(Exception e){ }
}while(isTrue)
优化后
try{
do {
...
}while(isTrue)
}catch(Exception e){}
test8
在多重循环中,如果有可能,尽量将最他的循环放在最内层,最短循环放在最外层,以减少循环切换次数。
for (int i=0; i<100000; i++) {
for(int j=0; j<10; j++) {
...
}
}
优化后:
for (int j=0; j<10; j++) {
for(int i=0; i<100000; i++) {
...
}
}
test9
循环内有If-else类逻辑,最好将if-else逻辑判断移到循环体外,以提高性能。
for(int i=0; i<100000; i++)
if(isTrue){
doThis
} else {
doThat
}
}
优化后:
if(isTrue) {
for(int i=0; i<100000;i++) {
doThis
}
} else {
for(int i=0; i<100000;i++) {
doThat
}
}
- 浏览: 56704 次
- 性别:
- 来自: 南通
最新评论
如何写好代码----java代码优化
- 博客分类:
- 性能小组
相关推荐
JAVA代码优化工具,
JAVA代码优化 JAVA代码优化 JAVA代码优化 JAVA代码优化 JAVA代码优化
java代码-使用java解决抓取当前屏幕信息的源代码 ——学习参考资料:仅用于个人学习使用!
可供程序利用的资源(内存、CPU时间...养成好的代码编写习惯非常重要,比如正确地、巧妙地运用java.lang.String类和java.util.Vector类,它能够显著地提高程序的性能。下面我们就来具体地分析一下这方面的问题。 .....
Java 实例 - 字符串优化源代码-详细教程.zip
java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码效率优化java代码...
可供程序利用的资源(内存、CPU时间...养成好的代码编写习惯非常重要,比如正确地、巧妙地运用 java.lang.String类和java.util.Vector类,它能够 显着地提高程序的性能。下面我们就来具体地分析一下这方面的问题。 ……
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
java代码开发代码优化整理笔记,仅供大家学习交流,如有侵权请尽快联系小编,如有不足,可发表评论,谢谢
可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定...优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。
44条Java代码优化建议,值得阅读一遍、并实践; 44条Java代码优化建议,值得阅读一遍、并实践
非常实用的java代码优化策略详解,从变量声明、初始化、字符串链接、异常处理、IO、数组等各个方面进行优化,非常有参考价值。
java代码性能优化
Java 代码优化常见注意点 别人在blog里总结出来的 拿来分享给大家[免分]
通过java代码规范来优化程序
java 代码 性能优化 23种技巧 经典 非常不错,一些我们没有注意的问题。
通过java代码规范来优化程序,优化内存使用情况,防止内存泄露 可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小...
pso程序的源代码-粒子群优化算法基本程序
代码 多目标粒子群优化算法代码代码 多目标粒子群优化算法代码代码 多目标粒子群优化算法代码代码 多目标粒子群优化算法代码代码 多目标粒子群优化算法代码代码 多目标粒子群优化算法代码代码 多目标粒子群优化算法...