Java 性能优化
1、避免创建不必要的对象;
2、如果方法用不到成员变量,可以把方法声明为static,性能提升15%-20%;
3、避免使用getters/setters存取Field,可以把Field声明为public,直接访问;
4、static的变量如果不需要修改,应使用static final修饰符定义为常量;
5、使用增强For循环for(:);
6、私有内部类访问外部类的Field或方法,可以把外部类的Field或方法声明为包访问权限(即不加任何关键字)
7、合理利用浮点数,浮点数比整形慢两倍。
Java默认访问权限没有任何关键字,但通常是指包访问权限(有时也表示成为friendly)。
这就意味着当前的包中的所有其他类对那个成员都有访问权限,但对于这个包之外的所有类,这个成员却是private。
由于一个编译单元(即一个文件),只能隶属于一个包,所以经由包访问权限,处于同一个编译单元中的所有类彼此之间都是自动可访问的。
Java中包访问权限允许将包内所有相关的类组合起来,以使它们彼此之间可以轻松地相互作用。
当把类组织起来放进一个包内之时,也就给它们的包访问权限的成员赋予了相互访问的权限,您“拥有”了该包内的程序代码。“只有您拥有的程序代码才可以访问您所拥有的其他程序代码”,这是合理的。
应该说,包访问权限为把类群聚在一个包中的做法提供了意义和理由。在许多语言中,在文件内组织定义的方式是任意的,但在Java中,则要强制您以一种合理的方式对它们加以组织。
另外,您可能还想要排除这样的类 — 它们不应该访问在当前包中所定义的类。
类控制着哪些代码有权访问自己的成员。其他包内的类不能刚一上来就说:“嗨,我们是会员。”并且还想看到protected,包访问权限和private成员。取得对某成员的访问权的唯一途径是:
1、使该成员成为public。于是,无论是谁,无论在哪里,都可以访问该成员。
2、通过不加访问权限修饰词井将其他类放置于同一个包内的方式给成员赋予包访问权。于是包内的其他类也就可以访问该成员了。
3、在继承技术中,您会看到继承而来的类既可以访问public成员也可以访问protected成员(但访问private成员却不行)。只有在两个类都处于同一个包内时,它才可以访问包访问权限的成员。但现在不必担心继承和protected。
5、提供访问器(accessor)和变异器(mutator)方法(也称作get/set方法),以读取和改变数值。对OOP而言,这是最优雅的方式,而且这也是JavaBeans的基本原理。