项目越写越多,代码越来越多,越来越乱,然后开始崩溃..
1、尽量重用对象(静态字符串可以用+拼接,如果表达式中有变量则用StringBuilder/StringBuffer拼接)
特别是String对象的使用,出现字符串连接时应该使用StringBuilder/StringBuffer代替。由于Java虚拟机不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收和处理,因此,生成过多的对象将会给程序的性能带来很大的影响。
例如:String str = “a” + b;
2、代码中不要直接用具体的字符串比较,要写在string.xml文件中
3、没有必要的空格行都删除掉
4、尽可能使用局部变量(对我来说这很重要)
调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。另外,栈中创建的变量,随着方法的运行结束,这些内容就没了,不需要额外的垃圾回收。
5、尽量减少对变量的重复计算(不要在循环中使用list.size()或者array.length()等等,重复计算是没必要的)
明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。所以例如下面的操作:for (int i = 0; i < list.size(); i++){...}建议替换为:for (int i = 0, int length = list.size(); i < length; i++){...}这样,在list.size()很大的时候,就减少了很多的消耗。
6、尽量采用懒加载的策略,即在需要的时候才创建
例如: String text =”师姐你好”; if(i == 1){list.add(text)}
修改为:if(i == 1) { String text = “师姐你好”;list.add(text)}
7、不要在for循环中重复生成对象引用
例如: for(int i = 0 ; i < 100 ; i++){
Object object = new Object();
}
修改为: Object object = null;
for(int i = 0 ; i < 100 ; i ++){
object = new Object;
}
这样就避免生成过多引用。
8、避免编写重复代码,提取公共部分
类似于分享下载上传压缩等一系列的方法都可以提取成公共方法。尽量避免在每个类中写一个下载或者分享的方法;尽量不要在类中新建内部类,类似于Asyntask这种类的,这种都应该新建包,然后创建新的class对象继承
还有类似于点击方法:在switch前面可以直接new一个Bundle和intent,防止在单独的控件点击方法内再创建新的bundle的对象,这样既不利于阅读代码,也不利于内存优化
9、在Switch语句中,default就是如果没有符合的case就执行它,default尽管并不是必须的,为了统一规范,大家都是加上的好。
10、避免在布局文件中直接写汉字,应提取到strings.xml中。
11、代码当中常量字符串要写到配置文件中
12、要对新建的类或者方法进行注释说明,便于其他开发人员理解。
13、及时关闭流 Java编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,将会导致严重的后果。