當前位置:首頁 » 安卓系統 » android調用static

android調用static

發布時間: 2022-08-05 11:19:47

㈠ android中的static

1. static變數

按照是否靜態的對類成員變數進行分類可分兩種:一種是被static修飾的變數,叫靜態變數或類變數;另一種是沒有被static修飾的變數,叫實例變數。兩者的區別是:
對於靜態變數在內存中只有一個拷貝(節省內存),JVM只為靜態分配一次內存,在載入類的過程中完成靜態變數的內存分配,可用類名直接訪問(方便),當然也可以通過對象來訪問(但是這是不推薦的)。對於實例變數,沒創建一個實例,就會為實例變數分配一次內存,實例變數可以在內存中有多個拷貝,互不影響(靈活)。

2. static代碼塊
static代碼塊是類載入時,初始化自動執行的。如果static代碼塊有多個,JVM將按照它們在類中出現的先後順序依次執行它們,每個代碼塊只會被執行一次。

3. static方法
static方法可以直接通過類名調用,任何的實例也都可以調用,因此static方法中不能用this和super關鍵字,不能直接訪問所屬類的實例變數和實例方法(就是不帶static的成員變數和成員成員方法),只能訪問所屬類的靜態成員變數和成員方法。因為static方法獨立於任何實例,因此static方法必須被實現,而不能是抽象的abstract。
static方法只能訪問static的變數和方法,因為非static的變數和方法是需要創建一個對象才能訪問的,而static的變數/方法不需要創建任何對象。

********
static的數據或方法,屬於整個類的而不是屬於某個對象的,是不會和類的任何對象實例聯繫到一起。所以子類和父類之間可以存在同名的static方法名,這里不涉及重載。所以不能把任何方法體內的變數聲明為static,例如:
fun() {
static int i=0; //非法。
}
其實理解static是只有一個存儲地方,而使用時直接使用,不需要創建對象,就能明白以上的注意事項。

另外,一般的類是沒有static的,只有內部類可以加上static來表示嵌套類。

㈡ android中static修飾的變數在Activity銷毀後,還存在嗎

1. static變數 按照是否靜態的對類成員變數進行分類可分兩種:一種是被static修飾的變數,叫靜態變數或類變數;另一種是沒有被static修飾的變數,叫實例變數。兩者的區別是: 對於靜態變數在內存中只有一個拷貝(節省內存),JVM只為靜態分配一次內存,在載入類的過程中完成靜態變數的內存分配,可用類名直接訪問(方便),當然也可以通過對象來訪問(但是這是不推薦的)。對於實例變數,沒創建一個實例,就會為實例變數分配一次內存,實例變數可以在內存中有多個拷貝,互不影響(靈活)。 2. static代碼塊 static代碼塊是類載入時,初始化自動執行的。如果static代碼塊有多個,JVM將按照它們在類中出現的先後順序依次執行它們,每個代碼塊只會被執行一次。 3. static方法 static方法可以直接通過類名調用,任何的實例也都可以調用,因此static方法中不能用this和super關鍵字,不能直接訪問所屬類的實例變數和實例方法(就是不帶static的成員變數和成員成員方法),只能訪問所屬類的靜態成員變數和成員方法。因為static方法獨立於任何實例,因此static方法必須被實現,而不能是抽象的abstract。 static方法只能訪問static的變數和方法,因為非static的變數和方法是需要創建一個對象才能訪問的,而static的變數/方法不需要創建任何對象。 ******** static的數據或方法,屬於整個類的而不是屬於某個對象的,是不會和類的任何對象實例聯繫到一起。所以子類和父類之間可以存在同名的static方法名,這里不涉及重載。所以不能把任何方法體內的變數聲明為static,例如: fun() { static int i=0; //非法。 } 其實理解static是只有一個存儲地方,而使用時直接使用,不需要創建對象,就能明白以上的注意事項。 另外,一般的類是沒有static的,只有內部類可以加上static來表示嵌套類。

㈢ 如何在android studio中用JNI調用靜態庫

Android.mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := static_add
LOCAL_SRC_FILES := libstatic_add.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := share_add
LOCAL_SRC_FILES := hello-jni.c
LOCAL_STATIC_LIBRARIES := static_add
LOCAL_C_INCLUDES := $(LOCAL_PATH)/jni/app/src/main/jni
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
LOCAL_STATIC_LIBRARIES := static_add
這一行換成:
LOCAL_LDLIBS += -lstatic_add
或者
LOCAL_LDFLAGS += $(LOCAL_PATH)/libstatic_add.a(可以任意指定路徑)

熱點內容
java復選框 發布:2024-05-04 22:13:24 瀏覽:528
安卓怎麼玩頁游 發布:2024-05-04 22:03:17 瀏覽:140
編譯器後面的代碼消失 發布:2024-05-04 22:02:11 瀏覽:59
openwrt編譯ipk 發布:2024-05-04 22:00:25 瀏覽:828
管理雲伺服器 發布:2024-05-04 21:36:31 瀏覽:552
給linux虛擬機傳文件 發布:2024-05-04 21:36:28 瀏覽:313
加密手機在哪裡 發布:2024-05-04 21:18:59 瀏覽:191
掃雷電腦配置低怎麼辦 發布:2024-05-04 21:07:37 瀏覽:821
微雲緩存文件在哪裡 發布:2024-05-04 20:53:07 瀏覽:509
咸陽市移動dns伺服器地址 發布:2024-05-04 20:39:19 瀏覽:442