Java代码优化
可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。
在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯非常重要,比如正确地、巧妙地运用
java.lang.String类和java.util.Vector类,它能够显著地提高程序的性能。下面我们就来具体地分析一下这方面的问题。
1、 尽量指定类的final修饰符
带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String。为String类
指定final防止了人们覆盖length()方法。另外,如果指定一个类为final,则该类所有的方法都是final。Java编译器会寻找机会内联
(inline)所有的final方法(这和具体的编译器实现有关)。此举能够使性能平均提高50% 。
2、 尽量重用对象。特别是String 对象的使用中,出现字符串连接情况时应用StringBuffer 代替。由于系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。因此,生成过多的对象将会给程序的性能带来很大的影响。
3、
尽量使用局部变量,调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。其他变量,如静态变量、实例变量等,都在堆
(Heap)中创建,速度较慢。另外,依赖于具体的编译器/JVM,局部变量还可能得到进一步优化。请参见《尽可能使用堆栈变量》。
4、 不要重复初始化变量 默认情况下,调用类的构造函数时,
Java会把变量初始化成确定的值:所有的对象被设置成null,整数变量(byte、short、int、long)设置成0,float和
double变量设置成0.0,逻辑值设置成false。当一个类从另一个类派生时,这一点尤其应该注意,因为用new关键词创建一个对象时,构造函数链
中的所有构造函数都会被自动调用。
5、 在JAVA + ORACLE 的应用系统开发中,java中内嵌的SQL语句尽量使用大写的形式,以减轻ORACLE解析器的解析负担。
6、 Java 编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,即使关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,
相关文档:
现在自学Java中,结合网上搜索、书上描写及自己的理解,对接口有一些理解,希望与大家分享一下。
接口是不同类的相同方法的集合,不过它只给出了方法的定义,并没有给出具体的实现。
就像一群杀手,有人叫他去杀一个人,他们有相同的行为——杀死目标,这就像接口,不同的杀手会用不同的手段,这如方法的具体实 ......
1. 从sun主页下载JDK for Linux版本,我的是jdk-6u14-linux-i586.bin。
2. 改为可操作文件,chmod +x jdk-6u14-linux-i586.bin
3. 安装 在当前路径,./jdk-6u14-linux-i586.bin;一路确定,装好之后在同一目录下会生成一个文件夹,jdk1.6.0_14,里边是一些lib等文件,同windows下生成的安装文件夹一样。
4.设 ......
轻量级组件是用JAVA代码画出来的,这样具有平台移植性。
重量级组件是调用操作系统的函数画出来的组件,比如主窗体。
一般来说尽量用轻量级的组件,这样对程序的移植性很好,一般javax.swing包里的组件大部分是轻量级的java.awt里面的是重量级的。
Swing是由100%纯Java实现的,Swing组件是用Java实现 ......
Javah生成JNI头文件
假设工程目录下有bin文件夹,bin存放编译好的class文件;
在bin目录下,
......\koalaTest\bin>javah -classpath . -jni com.jni.vikitest
然后在.....\koalaTest\bin 即可找到一个com_jni_Calculator.h头文件,生成成功! ......