提高JAVA性能的集中方法
2.通常,把与循环index不相关的移到循环的外面
view plaincopy to clipboardprint?
for(int i=0;terminal=x.length;i<terminal;i++){
X[i]=x[i]/scaleA*scaleB;
}
for(int i=0;terminal=x.length;i<terminal;i++){
X[i]=x[i]/scaleA*scaleB;
}
改为
view plaincopy to clipboardprint?
double scale = scaleB/scaleA;
for(int i=0; terminal=x.length; i<terminal; i++){
X[i]=x[i]*scale;
}
2.字符串
■ 消除字符串连接
■ 创建长字符串时,总是使用StringBuffter代替String
■ 预先分配StringBuffer空间
StringBuffer sb = new StringBuffer(5000);
3.基本数据类型
■ 在重要的循环里使用基本数据类型(int型数据通常比long/double型数据更快)
■ 基本数据类型(Boolean,Integer,etc)的包装类主要用在当传递的方法参数必须是一个对象的引用时(而不是一个基本数据类型)
■ 对所有的常量代数表达式使用static final修饰符
一 使常量更容易引用(编译器预先计算常量表达式)
4.异常
■ 异常只用于单个真正的错误条件
一 抛出一个异常和执行一个catch代码块花费是很高的(主要由于当创建一个异常时要获得线程栈的一个快照)
一 只当条件真的异常时才抛出一个异常
■ 使编译器和运行时最优化,将几个方法调用放在一个try/catch块中,而不是为每个方法调用实现几个try/catch块
5.基准
■ 注意,所有这些技巧会因不同的平台和虚拟机而不同
一 例如:在有些servlet容器内,通过一个OutputStream作为字节输出会更快
一 在其它的容器内,通过一个PrintWriter输出字符会更快
■ 这些技巧描述的是最可移植的建议
■ 你可能需要运行一些基准来判断在你的平台上怎么样是最快的
相关文档:
AjaxSwing是一个专为Java Swing应用 程序打造的Web开发平台。使用AjaxSwing,可以使为Java桌面应用程序转为Web应用。 AjaxSwing可以被看作是一个Java到HTML的转换器,其程序可以在运行时创建被浏览器解析的HTML和 JavaScript。另外,使用AjaxSwing无需对程序和业务逻辑进行大幅修改修改,它允许开发者使用标准Swing组件来实 ......
1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。
2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、 HtmlConverter、jar、 java、javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令 ......
对于Java的语言机制而言,当一个方法被声明为了static或者final类型的时候,该方法可以被拥有该方法的类的子类继承,但是不能被覆盖,这是因为当一个方法被声明为了上述两种类型的时候,在编译时刻该方法的调用着的类型已经被确定,是静态绑定,而不是动态绑定。同时在声明为static方法体里是不允许使用this和super关键字的 ......
public class Test1 {
public static void main(String[] args) {
//assignment
byte bval1 = 1, bval2 = 2;
short sval1 = 1, sval2 = 2;
int ival1 = 1, ival2 = 2;
long lval1 = 1, lval2 = 2;
float fval1 = 1.0f, fval2 = 2.0f;
double dval1 = 1.0, dval2 = 2.0;
char cval1 = 'a' ......