final修饰符
final修饰的类是不可派生的,让类不可以被继承。
final修饰的方法不可以被重写。
java编译器会寻找机会内联所有的final方法,内联对java运行效率提示巨大。
基本数据类型代替对象
String类型:程序除了创建字符串外,底层还包含一个char[]数组。
例如:String text = 'hello';char[]数组依次存放了h,e,l,l,o.
静态变量
某个对象被定义为static变量所引用,这个对象通常会常驻内存,不会被回收,直到程序终止。
二维数组
二维数组占用的内存空间比一维数组多得多,大概是10倍以上。
及时关闭流
数据库链接,I/O流等操作,使用完毕后,要即使关闭以释放资源,因为对这些大对象的操作会造成系统大的开销。
try catch
应该放在最外层
循环内不要创建对象引用
循环外创建对象Object obj = null;
循环内obj=new Object();
这样内存只有一份Object对象引用,没次new的时候Object对象引用指向不同的Object。
不要将数组声明为public static final
无意义,只是定义了引用为static final,数组的内容还是可以随意变更的。
同步代码快替代同步方法
除非能确定一整个方法都是需要进行同步的,否则尽量使用同步代码块。
避免对那些不需要进行同步的代码也进行了同步,影响了代码执行效率。