在java的代码中我们常常看到一些被static关键字修饰的变量和方法。在使用static中,首先明白
(1)为什么要用。
(2)怎么用。
(3)他的特点是什么
在java代码运行的时候,首先在jvm中将方法Loader进内存中,在jvm加载类的时候,要对类进行装载,链接,初始化,在初始化的阶段首先加载static修饰的方法和变量。使用static修饰的方法和变量,实际上是指定变量存到内存中的“固定位置”-staticstorage。既然有“固定位置”那他们的“大小”似乎可以固定啦,有固定的大小和固定的位置的特征,在堆中或栈中开辟空间就非常方便。静态标识内存的共享,就是内一个实例都制定一个内存地址,使用static拿来,就是告诉jvm他是一个静态的,他的引用就是指向同一个位置,在那个地方,你把它改啦,他就不会变成原样啦。清理之后,就不会回来啦。
在《Java编程思想》P105页有这样一段话:
“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”
这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键字的基本作用,简而言之,一句话来描述就是:在没有创建对象的情况下可以调用方法或变量。
很显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。我们就可以不用讲这个对象new出来啦。
static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。
1.static方法。使用static修饰的方法一般称为静态方法。在调用类中的方法的时候,不依赖对象,可以通过类名直接调用。需要注意的是,在静态方法中只能调用静态方法和静态变量。不能调用非静态的。反之可以。
2.static变量。使用static修饰的变量叫做静态变量。静态变量和非静态变量的区别。静态变量在内存中只有一个副本,一旦被别的程序修改之后,他就不能变回原来的值。一旦被清除,他就永远的消失。但是非静态的变量,是属于对象的,在对象中被初始化,有多个副本。各个对象操作是不相互影响的。
3.static代码块。在一个类中可以有多个static代码块,也可以写在程序的任何地方,当但是一般写在程序的开头。static代码块在程序初次加载的时候,运行,不需要程序员调用,它自动的运行。static代码块运行的顺序按照代码的顺序依次执行,并且只执行一次。static代码块的使用可以提高代码的效率。
本文深入探讨Java中的static关键字,解析其工作原理、应用场景及特点。包括static方法、变量及代码块的具体使用方式,并阐述它们如何帮助提升代码效率。

被折叠的 条评论
为什么被折叠?



