1.系统不仅要花费时间来创建对象,而且要花时间对这些对象进行垃圾回收和处理,所以应尽量避免过多过常的创建对象,可用基本数据类型或数组来替代对象;
2. 当某个对象被定义为static变量所引用,这个对象所占有的内存不会被回收,所以应尽量避免随意使用静态变量;
3. 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中,速度较快。其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。所以应尽量使用局部变量;
4. 通常,StringBuffer 的构造器会创建一个默认大小(16)的字符数组,使用时,如果超出这个大小,就会重新分配内存,创建一个更大的数组,并将原先的数组复制过来,再将旧的数组丢弃。如果在创建 StringBuffer时指定大小,这样就避免了在容量不够的时候自动增长的情况,所以应尽量确定StringBuffer的容量;
5.二维数据占用的内存空间比一维数组多得多,所以应尽量避免使用二维数组;
6. 当创建一个异常时,需要收集一个用于描述异常是在何处创建的栈跟踪。构建这些栈跟踪时需要为运行时栈做一份快照,正是这一部分开销很大。当需要创建一个 Exception 时,会暂时停止入栈和出栈操作。即创建异常需要很大开销。所以要慎用异常。
时间: 2024-10-14 07:48:58