1.static 修饰的域,我们叫静态域,它是归类所有的,被所有对象所共享,只有一个 static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,静态方法在内存中的位置是固定的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。 main方法是一个程序的入口,如果写成非静态的,那么就必须实例化一个对象再来调用它,既然是入口这样肯定是不可以的;静态方法是属于类的,直接用类名就可以调用 static方法不需要创建对象 可以直接访问 这样main方法就不需要做特殊处理 static方法在静态数据区中,这样就可以直接调用不需要每次调用都要重新生成。 静态函数在调用时不用实例化 静态,一上来就装入内存 比如 person这个类里面有一个方法public static add(){}
那么可以直接用person类调用 person.add();当然也可以用下面的方法先出一个对象在调用也是可以;如果这个方法前面没有static 比如 public add(){}
那么先要person p=new person();然后用p.add();
类加载器在加载这个类的时候就已经实例化了这个类。
坏处:初始化加载,比较占内存,所以不经常用的方法,不建议加此关键字。
|
|