java代码优化
可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。
优化包含两方面内容:减小代码的体积,提高代码的运行效率。
1、 尽量指定类的final修饰符,带有final修饰符的类是不可派生的。如果指定一个类为final,则该类所有的方法都是final。
2、 尽量重用对象。特别是String 对象的使用中,出现字符串连接情况时应用StringBuffer
代替。系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。
3、
尽量使用局部变量,调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快。其他变量,如静态变量、实例变量等,都在堆(Heap)中创建,速度较慢。
4、 java中内嵌的SQL语句尽量使用大写的形式,以减轻ORACLE解析器的解析负担。
5、 Java 编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,即使关闭以释放资源。
6、 减少对变量的重复计算
例如:for(int i = 0;i < list.size; i ++) {
…
}
应替换为:
for(int i = 0,len = list.size();i
< len; i ++) {
…
}
7、尽量采用lazy loading 的策略,即在需要的时候才开始创建。
if(i == 1) {
String str = "....";
}
7 合理使用 java.util.Vector
8、乘法和除法
用移位操作替代乘法操作可以极大地提高性能。
result = val << 3;
不做乘以8的操作,而是改用等价的左移3位操作,每左移1位相当于乘以2。右移1位操作相当于除以2。(应加上一些注释)
9 在JSP页面中关闭无用的会话
session是server端程序调用HttpServletRequest.getSession(true)时才被创建,如果JSP没有显示的使用
<%@pagesession="false"%>
关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句HttpSession session =
HttpServletRequest.getSessio
相关文档:
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......
1)垃圾回收的两个关键要素:
发现无用对象。
回收无用对象的内存空间。
2)6种垃圾回收算法:
引用计数法,tracing 算法,compacting算法,copying 算法,generation算法,adaptive算法。
3)detail:
引用计数法(Reference Counting Collector)
引用计数法是唯一没有使用根集的垃圾回收的 ......
1)概念:
是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
2)功能:
在运行时判断任意一个对象所属的类;
在运行时 ......
1)net中定义的的WebService(返回值和参数都是自定义对象)可以被Java识别并调用,可是在Java中定义的WebService(返回值和参数都是自定义对象),C#客户端可以识别到自定义对象,也生成了代理类,可是调用时无法获取到对象的属性值,都是NUll?JavaWebService怎样传递自定义对象给。net?
解决:
直接用wsdl命令生成代理 ......
import java.util.Arrays;
public class Sort {
//冒泡排序(从头到尾排)
public static void bubbleSort(int[] arrays)
{
//第一次循环从第一个元素开始,到倒数第二个元素
for(int i=0;i<arrays.length-1;i++)
{
for(int j=1 ......