Java中静态方法跟非静态方法的区别

 1 public class A{
 2     public static void main(String []args){
 3 
 4         A.sayHi();
 5         A a= new A();
 6         boy.lookMe();
 7     }
 8     private static String sayHi()//静态方法
 9     {
10         return "Hi";
11     }
12     private  String lookMe()//非静态方法
13     {
14         return "you are beautiful";
15     }
16 }

区别:

首先,两者本质上的区别是:静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被装载和分配。而非静态方法是不加static关键字的方法,在类定义时没有占用内存,只有在类被实例化成对象时,对象调用该方法才被分配内存。

       其次,静态方法中只能调用静态成员或者方法,不能调用非静态方法或者非静态成员,而非静态方法既可以调用静态成员或者方法又可以调用其他的非静态成员或者方法。

1.静态方法可以通过类名直接调用。
用法: A.sayHi(); 优点是调用方便。
2.非静态的方法是先声明类实例才能调用类中的方法.
用法:A a = A();
a.lookMe();
3.我们一般常用的方法是静态方法。静态的速度快,占内存。动态的速度相对慢些,但调用完后,立即释放类,可以节省内存,可以根据自己的需要选择是用普通方法还是静态方法。
4.静态方法主要的问题就是数据同步的问题。如果你的静态方法的类中不保存私有变量那么什么问题都不会有的。最好是包要操作的数据全部以参数的方式传到方法中去
5. 静态方法是类方法,调用时不需要创建类实例。
6. 静态方法是静态绑定到子类,不是被继承。

posted @ 2021-05-20 19:04  I若水  阅读(1531)  评论(0编辑  收藏  举报