Static关键字
执行new来创建对象时, 数据存储空间才被分配, 其方法才供外界调用. 有两种情形用上述方法是无法解决的. 一种情形是, 只想为某特定域分配单一存储空间, 而不去考虑空间要创建多少对象, 甚至根本就不创建任何对象. 另一种情形是, 希望某个方法不与包含它的类的任何对象关联在一起. 也就是说, 即使没有创建对象, 也能够调用这个方法.
public class StaticTest { static int i = 47; public static void main(String[] args) { StaticTest one = new StaticTest(); StaticTest two = new StaticTest(); } }
在这里one.i和two.i指向同一存储空间, 因为它们具有相同的值(static字段对每个类来说都只有一份存储空间, 而非static字段则是对每个对象有一个存储空间)