2.static 是在內存中分配一塊區域,供整個類通用,全部的類的對象都享有它的共同的值java
static定義一個變量:實現的是類全部對象的共享,好比算網站的點擊量的時候,經過一個static變量實現。網站
public class StaticTest { private static int i = 0; public int add(int i) { return this.i += i; } /** * @param args */ public static void main(String[] args) { StaticTest st = new StaticTest(); st.add(3); StaticTest st1 = new StaticTest(); st1.add(4); System.out.println(i); } }
代碼中的i的值實現了共享,因而可知靜態域保存在類的存儲單元裏,問不是保存對象的存儲單元裏。this
而final如同上面所講的,定義常量或者方法不能覆蓋,類不能繼承。這裏的方法不能覆蓋可是能夠重載:code
public class StaticTest { private static int i = 0; public final int add(int i) { return this.i += i; } }
public class StaticTest1 extends StaticTest { private int i = 0; public int add(String i) { return this.i += Integer.parseInt(i); } }