在JAVA中, 静态方法和一般方法有什么区别?

来源:百度知道 编辑:UC知道 时间:2024/05/23 19:55:41
在JAVA中,静态方法和一般方法有什么区别?特别是在做项目时,在什么情况下选用哪种方法更好些,在资源占用方面有什么区别???

静态方法在JVM刚加载的时候就编译过了...在程序的运行过程中随时可以调用...不需要去实例化某个对象然后再去调用...可以直接用类名去调用...不过你想一下,在JVM刚加载的进修就编译过了..也就是说它一直存在着...也就是说它一直占用这内存中的地址空间...所以说也是比较占资源的噢!

相对于静态方法而言,动态方法占的内存资源就少些...因为它是什么时候使用什么时候实例化...也就是说在不使用的时候它是不会占用资源的...相对与静态方法的缺点是它每次使用的时候都要进行实例化...也就是说比较麻烦一些了...

各有各的优点与缺点...看情况..你觉得什么时候使用哪种方法方便就使用哪种!假如你要频繁地调用某一方法当然最好就不要老是实例化对象喽...不过一个方法你很少用..你要是用静态方法就太浪费空间资源了..你学得呢???

祝君早日成功!!!

从使用上来说,主要有3点区别:
1、在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

2、静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。

3、程序的static块只能调用静态方法,不能调用实例的方法。

如果要追溯其区别的根源,可以这样理解:在编译期间静态方法的行为就已经确定,而实例方法只有在运行期间当实例确定之后才能确定。

静态方法无法访问本类中的非静态属性的,我个人的俗话就是,静态方法只能访问以参数方式传入的变量。
比如有一个CLASSA,类中包含属性:
private String str;
private String strc;
那么如果在这个类中定义一个静态方法是不可以访问这些属性的。
正常方法是可以的,因为访问的时候类是经过实例化的。

静态方法在程序运行中是存放在公共区,任何时间只需要用类名,不用创建实例引用就可以直接调用。
静态一般