这个题有点大!
从代码大小方面可以从以下几点考虑:
1、使用jar来打包你的代码
2、尽量使用API中已经实现的方法或继承它的类,而不是自己另起一套
3、尽量多的继承或使用自己包里已经实现的类或方法,这样做得越多你写的代码越少
4、打开优化开关javac -O可以减少内嵌方法的bytecode大小
5、将多处出现的相同的代码抽取合成方法调用
6、不要初始化大的数组
7、避开使用一些开销大的对象,比如用long代替Date,用StringBuffer代替String等
8、命名短也可以缩小代码大小,因为在class文件中是以全名标示的
9、将常量使用static final修饰保存到interface里,再实现这个接口就能避免额外的开销了

解决方案 »

  1.   

    运行的效率可以从以下几点考虑:
    1、打开优化开关 javac -O
    2、使用Just-in-time编译器,比如:Asymetrix、Kaffe、visualJ等
    3、使用多处理器
    4、如果你不考虑平台无关的话,可以尽量多的使用本地代码,比如用c语言来实现;当然也可以使用Toba、Harissa等工具转成c代码
    5、在I/O处理是尽量使用BufferedInputStream或BufferedOutputStream等有缓冲的方法,有缓冲的成批的处理要比单字节要快
    6、在不需要考虑同步互斥的情况下,不要使用同步。同步方法通常要比非同步的慢一个量级
    7、减少不必要的异常抛出
    8、记住String的“+”的开销要比StringBuffer要大得多
    9、多使用Java API的方法,比如arraycopy要比我们自己的循环处理两个数组复制要快得多
    10、当然9也不是绝对的,如果碰到Java API提供的比自己需要要多的时候,就可以考虑不用,或者自己实现;当然也有可能你会碰到明确某个Java API里的方法导致的性能问题的话,就更有理由自己来实现或者覆盖它了
    11、能重用已经创建过实体就重用吧