(1) 少用字符串连接,多用StringBuffer
(2) 尽量用固定大小的数组代替使用Vector
(3) 如果可以不使用新class就能实现功能,就不要增加新的class,因为每个class都有一定的内存开销
(4) 使用有限的面向对象,因为纯粹的OO往往意味着更多的虚方法,更多的层次关系,更多的class
(5) 考虑使用public域(即数据成员)代替getter和setter
(6) 对确定不必被继承的方法使用final修饰符
(7) 使用BufferedInputStream或BufferedReader来包裹输入流
(8) 发行之前使用混淆器处理你的classes,除了能防止别人任意反编译偷窥你的程序,也能减小class文件的尺寸,因为混淆器往往用较短的字符串代替原来的变量或方法名。
(9) 用局部变量代替全局变量。
(10) 只在即将使用对象时才为其分配内存,使用完之后设成null
(11) 把尽可能多的计算放到服务器上执行,而且尽量减少客户端与服务器的通信次数和传输数据量
(12) 能用boolean解决的变量不要声明成int
(13) 执行时间超过0.1秒的函数可以放到另一个线程执行
(2) 尽量用固定大小的数组代替使用Vector
(3) 如果可以不使用新class就能实现功能,就不要增加新的class,因为每个class都有一定的内存开销
(4) 使用有限的面向对象,因为纯粹的OO往往意味着更多的虚方法,更多的层次关系,更多的class
(5) 考虑使用public域(即数据成员)代替getter和setter
(6) 对确定不必被继承的方法使用final修饰符
(7) 使用BufferedInputStream或BufferedReader来包裹输入流
(8) 发行之前使用混淆器处理你的classes,除了能防止别人任意反编译偷窥你的程序,也能减小class文件的尺寸,因为混淆器往往用较短的字符串代替原来的变量或方法名。
(9) 用局部变量代替全局变量。
(10) 只在即将使用对象时才为其分配内存,使用完之后设成null
(11) 把尽可能多的计算放到服务器上执行,而且尽量减少客户端与服务器的通信次数和传输数据量
(12) 能用boolean解决的变量不要声明成int
(13) 执行时间超过0.1秒的函数可以放到另一个线程执行