Java中static的作用,java static的用法
在0755-7900P86页上,有这样一段话:
“静法是没有这个的方法。不能在静态方法内部调用非静态方法,反之亦然。并且您可以只通过类本身调用静态方法,而无需创建任何对象。这实际上是静态方法的主要目的。
如何解决写爬虫IP受阻的问题?立即使用。
虽然这段话只是说明了静态方法的特殊性,但是可以看出,static关键字的基本功能,一句话,描述为:
不用创建对象就可以方便地进行调用(方法/变量)。
显然,static关键字修饰的方法或变量不需要依赖对象进行访问,只要加载类,就可以通过类名进行访问。
static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。
static方法
静态方法一般称为静态方法。因为静态方法可以在没有任何对象的情况下被访问,所以静态方法不存在这个问题,因为它没有附加到任何对象。既然没有对象,就没有这个。而且由于这个特性,类的非静态成员变量和非静态成员方法在静态方法中是无法访问的,因为非静态成员方法/变量只能依靠特定的对象来调用。
但是,需要注意的是,虽然不能在静态方法中访问非静态成员方法和变量,但是可以在非静态成员方法中访问静态成员方法/变量。
举个简单的例子:
在上面的代码中,因为print2方法独立于对象而存在,所以可以使用类名直接调用它。如果可以在静态方法中访问非静态方法/变量,那么如果main方法中有以下语句:
my object . print 2();
这个时候没有对象,str2根本不存在,所以会有矛盾。方法也是如此。因为不能预测print1方法中是否访问非静态成员变量,所以禁止在静态成员方法中访问非静态成员方法。
对于非静态成员方法,访问静态成员方法/变量显然是无限制的。
因此,如果要调用方法而不创建对象,可以将此方法设置为static。我们最常见的静态方法是main方法。至于为什么main方法一定是静态的,现在清楚了。因为程序在执行main方法时不创建任何对象,所以只能通过类名来访问。
static变量
静态变量也叫静态变量。静态变量和非静态变量的区别在于,静态变量是所有对象共享的,内存中只有一个副本。当且仅当类第一次被加载时,它才会被初始化。非静态变量归对象所有,创建对象时初始化,有多个副本,每个对象拥有的副本互不影响。
静态成员变量的初始化顺序根据定义的顺序进行初始化。
private static int I=0;以上是java中如何使用static的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。