java中静态方法代替构造函数有哪些优缺点
1、可以在不进行类变量声明并初始化的情况下,使用某类中的一些变量。
2、使类在声明被载入的同时,位于static中的初始化也同时完成。
3、在一些工厂类中,可以为全局提供一个唯一的对象句柄,而这个句柄在程序执行起来以后,就是构造好的,直接拿来就可以用。——这是静态方法代替构造函数最常见的用法。
缺点也很多。
1、一旦静态方法中的代码在载入中出现了错误,应用程序可能连正常初始化都无法完成。而使用构造函数的话,一般不会发生这个问题。
2、不灵活。构造函数可以在参数上进行控制,使类对象能满足不同的需要,静态函数初始化的方式很难满足这点。
3、使用范围较窄,通常只用在工厂函数中。
4、静态构造方式只在编译时由虚拟机执行一次,程序员不能手动调用,而构造函数可以在任何时候由程序员手动调用。
补充:一楼没明白楼主的意思。楼主是说这样的函数:
public class A{
static{
}
}
位于static后面大括号中的代码区域叫做静态代码块,这个代码块程序员是没法手动调用的。
java静态方法对性能有影响吗
您好,提问者:
一开始加载class文件时,会把static加载到静态区,长存,JVM不会回收。
对性能有一定的影响,对于static内容不要太多,尽量避免大内容static。
特别提醒:如果不是常量固定值的话,建议少用static定义变量。
java中静态变量和静态方法的优缺点
静态的变量或者方法被称为是共享的,也就是说静态的东西可以不需要用对象.静态变量就可以拿到,那么这样就不需要new一个对象就可以拿到静态变量。对象如果new的太多,会浪费性能,当然,静态也有其敝处。如果你以后学到设计模式中的单例模式可以体会到静态的变量有何利弊。一般来说,如果你只是在学java基础,那么不用太纠结于此,等以后你循序渐进学的多了,自然水到渠成。