1. 程式人生 > >Java靜態方法的注意事項

Java靜態方法的注意事項

靜態的使用注意事項: 
1.靜態方法只能訪問靜態成員(包括成員變數和成員方法) 
非靜態方法可以訪問靜態也可以訪問非靜態 
2.靜態方法中不可以定義this,super關鍵字 
因為 一個類中,一個static變數只會有一個記憶體空間,雖然有多個類例項,但這些類例項中的這個static變數會共享同一個記憶體空間。靜態方法在優先於物件存在,所以靜態方法中不可以出現this,super關鍵字。 
3.主函式是靜態的。

靜態的利弊: 
利:對 物件的共享資料進行單獨空間的儲存,節省空間,沒有必要每一個物件中都儲存一份,可以直接被類名所呼叫 
弊:生命週期過長,訪問出現侷限性(只能訪問靜態)

例項變數和類變數(static宣告的變數)的區別: 
1.存放位置 
類變數隨著類的載入存在於方法區中,例項變數隨著物件的建立存在於堆記憶體裡 
2.生命週期 
類變數生命週期最長,隨著“類”的載入而載入,隨著類的消失而消失 
例項變數隨著“物件”的消失而消失

相關推薦

Java靜態方法注意事項

靜態的使用注意事項:  1.靜態方法只能訪問靜態成員(包括成員變數和成員方法)  非靜態方法可以訪問靜態也可以訪問非靜態  2.靜態方法中不可以定義this,super關鍵字  因為 一個類中,一個static變數只會有一個記憶體空間,雖然有多個類例項,但這些類例項中的這個s

Java學習筆記——方法注意事項

使用方法的時候,注意事項: 1.方法應該定義在類當中,但是不能在方法當中再定義方法,不能巢狀。 2.方法定義的前後順序無所謂。 3.方法定義之後不會執行,如果希望執行,一定要呼叫:單獨呼叫、列印呼叫、賦值呼叫。 4.如果方法有返回值,那麼必須寫上“return返回值;”,不能沒有。 5.re

Java靜態方法 與 非靜態方法(實例方法)的區別

外部類 允許 靜態成員 靜態 成員 訪問 靜態成員變量 ava 實例方法 靜態方法與實例方法的異同   1.在外部類 調用靜態方法時,有兩種方式:(1)類名.靜態方法()(2)類的對象.靜態方法() ;也就是說調用靜態方法時可以不用創建對象。      調用實例

Java - 靜態方法不具有多態性

多態性 pub public 機制 根據 都是 print java args class A1 { public static void f() { System.out.println("A1.f()"); }}class A2 extends A1 { public

java靜態方法和實例方法的區別

區別 -s string chap 變量賦值 sta 方法 url cal 靜態方法(方法前冠以static)和實例方法(前面未冠以static)的區別 (視頻下載) (全部書籍) 調用靜態方法或說類方法時,可以使用類名做前綴,也可以使用某一個具體的對象名;通常使用

Calendar的get()、set()和roll()方法注意事項

轉載:http://blog.sina.com.cn/s/blog_677873910102vcp7.html 示例程式碼: Calendar c = Calendar.getInstance();   c.set(2014, Ca

tp5驗證碼之check()方法注意事項

$vertify=Request::param('vertify'); $userValidate = new UserValidata; if (!$userValidate->check(['vertify'=>$vertify])) {

單元測試時靜態方法注意

Mockito 很強大, 但是它不支援靜態方法.所以, 就用Powermock了. 要測試的物件是Controller中的介面, 對單元測試來說, 這個待測試的街口應該是一個白盒的. 所以, 其中的第三方(service,其他靜態類)的呼叫都應該使用mock物件來stub起來. 下面是## 示例程式碼(隨

Android-NDK學習記錄4-C呼叫Java靜態方法修改靜態欄位

一. jni互動相關-方法簽名 方法簽名在jni的使用中經常都會用到,在java中會有過載,那麼定位到一個方法的方式:類+方法名稱+方法簽名,那麼我們先學習下簽名規則: 基本型別簽名: 咱們基本型別有各自的簽名,如下表 型別名

Java賦值注意事項

        賦值使用的操作符是"="。它的意思就是“取右邊的值(即右值),把它複製給左邊(即左值)”。右值可以是任何常數、變數或者表示式(只要它能生成一個值就行)。但左邊必須是一個明確的、已命名的變數。必須有個物理空間可以儲存等號右邊的值。 即可以

節省兩倍開發時間,Java靜態方法還可以這麼玩!

鏈式呼叫 首先需要提一下最近幾年在開發界大的鏈式呼叫,鏈式呼叫非常利於編寫,更利於閱讀,那麼,什麼是鏈式呼叫呢,為了掃盲,舉個例子。 栗子 示例程式碼如下,如果我們想建立一個Dialog,不依賴鏈式呼叫的話,將會產生如下程式碼:   上述程式碼共計372個字

Java靜態方法呼叫非靜態方法

靜態方法(static mehod)不能直接呼叫非靜態方法(non-static method),可以通過一個物件的引用傳入靜態方法中,再去呼叫該物件的非靜態方法。在主函式(static方法)中,經常建立某個類的例項,再利用其引用變數呼叫他的非靜態方法。 public cl

Java靜態方法,靜態變數,初始化順序

靜態方法的宣告和定義        定義一個靜態方法和定義一個例項方法,在形式上並沒有什麼區別,只是在宣告的頭部,需要加上一個關鍵字static。它的一般語法形式如下: [訪問許可權修飾符] static [返回值型別] 方法名([引數列表]){         語句序列 } 例如下面是一個靜態的方法: pu

Java Arrays.asList注意事項

Arrays.asList用來將陣列轉化為List,這個看似功能很明瞭的方法卻暗藏玄機。 請先看下面的程式: int[] datas = new int[]{1,2,3,4,5}; List list = Arrays.asList(datas); System

IDEA中新建Java Web工程注意事項

IDEA中注意事項 在WEB-INF下新建lib和classes不是必須的。如果自己新建了,每次必須手動將jar依賴在src和web下的lib都新放一份。 getServletConfig().getServletContext().getRealPath()如果在idea中使用,需

arrays.asList方法注意事項

Arrays.asList用來將陣列轉化為List,這個看似功能很明瞭的方法卻暗藏玄機。 請先看下面的程式: int[] datas = new int[]{1,2,3,4,5}; List list = Arrays.asList(datas); System.out.println(list

java內部類注意事項

java內部類 public class code1 { public code2 B; class code2//方法三static class code2 { private String s; public code2(String s){this.

java 靜態方法呼叫非靜態內部類報錯

Error: No enclosing instance of type *** is accessible. Must qualify the allocation with an enclosing instance of type *** (e.g. x.new A

Java 靜態方法在繼承時的表現

靜態方法在繼承時的情況 如果在父類定義了靜態方法,子類對父類進行繼承的時候,可以繼承靜態方法,但是在子類中表現為隱藏狀態。 靜態方法有兩種呼叫方式: 在使用 類名.靜態方法 呼叫的時候,直接呼叫

java靜態方法靜態屬性

靜態方法,靜態屬性,都是不需要建立例項物件就可以呼叫,而且是單例的,不管建立多少個物件,都是共享一個 靜態屬性。 靜態方法不可以呼叫非靜態的變數,只可以呼叫靜態的屬性。 靜態方法不可以呼叫非靜態的方法,只可以呼叫靜態的方法 靜態方法和static程式碼塊在