1. 程式人生 > >java靜態變數和靜態方法優缺點

java靜態變數和靜態方法優缺點

java靜態變數和靜態方法會在程式初始化執行時候就載入到記憶體。
優點:不需要在進行例項化。靜態變數的值,直接賦新值即可,不需要引數傳遞,之後可以直接進行引數引用即可;靜態方法可以直接通過"類名.方法"的形式進行方法呼叫。通常方法被多次呼叫,並且方法中沒有動態方法引用的時候使用比較方便。
缺點:初始化載入到記憶體,如果後續沒被引用,加大了記憶體負擔和程式執行負擔,影響程式執行效率(一般很小),並且靜態變數如果多處被引用賦值,很可能導致引數值混(如果是不變的值,最後加上final修飾,強制不能修改)。

相關推薦

java靜態變數靜態方法優缺點

java靜態變數和靜態方法會在程式初始化執行時候就載入到記憶體。 優點:不需要在進行例項化。靜態變數的值,直接賦新值即可,不需要引數傳遞,之後可以直接進行引數引用即可;靜態方法可以直接通過"類名.方法

Java靜態變數靜態方法

總結一下,靜態變數和非靜態變數、靜態方法和非靜態方法的區別。 靜態變數和非靜態變數: 靜態變數是屬於類的,在類載入時直接初始化,並且是在類的任何物件創造之前就完成初始化,同一類的所有例項也都共享同一個靜態變數;而非靜態變數是屬於物件(例項)的,例項化時才被分配記憶體空間。它們的訪問方式:靜態變數

java基礎-靜態變數靜態常量以及靜態方法的理解

靜態變數是用static修飾符修飾的變數,靜態常量是static  final修飾的變數; 宣告和訪問許可權: 靜態變數:必須是成員變數,static不能修飾區域性變數。靜態成員變數可以通過類名訪問,也可以通過物件名進行訪問。 靜態方法:用static修飾

java靜態靜態變數靜態方法分別有什麼特點?

一、static  請先看下面這段程式:public class Hello{ public static void main(String[] args){ //(1) System.out.println("Hello,world!"); //(2

Java靜態變數靜態方法

靜態變數 和 靜態方法(使用static修飾) 靜態變數 儲存在 方法區的靜態區(共享區) 靜態變數 是共享的區間 靜態變數 是如何呼叫 ? 1.可以使用物件來呼叫 2.推薦 使用類名來呼叫 為什麼靜態變數 要使用類名去呼叫

Java中的構造方法靜態變數靜態方法(基礎詳解)

Java中的構造方法、靜態變數和靜態方法 構造方法 構造方法注意事項: 1. 如果你沒寫無參的構造方法 系統會給你提供一個無參的構造方法 2. 如果我只

Java中的靜態變數靜態函式

Java中的靜態變數和靜態函式 靜態變數:    在JAVA中類在宣告的時候,其實並沒有申請和產生記憶體空間,就如同我們的一個切實可行的想法,但其實並沒有去實施這個想法。而類只有在用這種資料型別建立一個類的物件的時候,才能在記憶體中申請和產生類大小的記憶體空間,這一塊記憶體空間是用來存放

C#中靜態變數 靜態方法

C#中靜態變數和 靜態方法 static節省了構造物件時造成的效能損耗,其次還能用於一些特殊環境(如惡漢式單例) 但是由於靜態成員在程式載入之前就進入記憶體,直到程式結束才會銷燬,所以 在程式中如果大量使用static來宣告型別或成員,也會造成系統資源的浪費。 一般靜態的就代表全域性。表示任何類

"靜態方法裡只能呼叫靜態變數靜態方法"詳解

靜態方法裡可以呼叫靜態方法和靜態變數,同時也能呼叫非靜態方法和非靜態變數。 public class Test { public Test() {}; public Test(int i) {this.n = i;} public static int m = 5; p

c/c++靜態變數靜態函式

c語言中 c語言中需要記憶體來存放資料。而記憶體主要分為兩類:靜態儲存區和動態儲存區; 靜態儲存區分為:只讀資料(READONLY DATA)區、以讀寫資料(RW DATA)區、未初始化區(BSS)。它們都是在程式編譯連線階段確定的,在程式執行的階段不會改變。 動

一、C語言靜態變數靜態函式

static C語言        C語言程式可以看成由一系列外部物件構成,這些外部物件可能是變數或函式。而內部變數是指定義在函式內部的函式引數及變數。外部變數定義在函式之外,因此可以在許多函式中使用。由於C語言不允許在一個函式中定義其

靜態變數靜態程式碼塊的執行順序

static { name="zhangsan"; } private static String name=null;上面這段程式碼,把name打印出來是nullprivate static String name=null;static { name="

static 靜態變數靜態程式碼塊的執行順序

        眾所周知 在android中static 修飾的會被稱之為 靜態常量,靜態變數, 靜態方法 ,還有就是靜態程式碼塊,用static{ // 程式碼塊 非static修飾的方法,變數,常量, 是不能再靜態程式碼塊中使用的 } 表示。        stati

Java 私有變數私有方法

作者: Jakob Jenkov 譯者:葉文海([email protected]) 內容索引 訪問私有變數訪問私有方法 在通常的觀點中從物件的外部訪問私有變數以及方法是不允許的,但是 Java 反射機制可以做到這一點。使用這個功能並不困難,在進行單元測試時這個功能非常有效。本節會向你展示如何

靜態變數初始化:靜態變數靜態程式碼塊初始順序

在工具類中,通常會初始化一些單例變數,這些變數由於只會初始一次,並不適合放在建構函式中,因此通常選擇在靜態程式碼塊中執行,那麼在一個類中,就會涉及到靜態變數和靜態程式碼塊的初始化執行順序問題。 pu

形參、區域性(非靜態)變數靜態區域性變數的差別

1、形參和區域性(非靜態)變數屬於自動變數,在定義它們的塊語句結束時撤銷。特別地,形參所佔有的儲存空間在呼叫函式時建立,在函式結束後撤銷。 2、預設情況下,區域性變數的生命期侷限於所在函式的每次執行期間。 3、靜態區域性變數的生命期跨越了該函式的多次呼叫,這種物件一旦被建立

Java內部類(3):非靜態內部類為什麼不能有靜態成員變數靜態方法

首先要明白以下三點: static型別的屬性和方法,在類載入的時候就會存在於記憶體中。 要想使用某個類的static屬性和方法,那麼這個類必須要載入到虛擬機器- 中。 非靜態內部類並不隨外部類一起載入,只有在例項化外部類之後才會載入。 現在考慮這個情

kotlin學習筆記:object關鍵字介紹與java中的靜態變數靜態方法的實現以及@JvmField@JvmStatic的使用

在java中,靜態變數和靜態方法是我們經常需要用到的東西,但是我們在kotlin中,並不能找到static關鍵字。其實目前在kotlin中,也的確是static概念的,那麼我們該如何在kotlin中實現靜態變數和靜態方法呢?這時就要用到kotlin中的obje

JAVA關鍵字Static作用 特點 利弊及建立時機 成員變數靜態變數 Static修飾成員 修飾方法 修飾塊(靜態快)

(1)Static關鍵字修飾符 可以修飾成員(成員屬性 成員方法)(2)Static修飾成員的特點a 生命週期長 跟類相同b 用Static修飾的變數 所有物件共享c Static修飾變數 可以通過物件(.)點的形式呼叫 還可以通過類名(.)點方法呼叫(3)Static建立時

java靜態屬性靜態方法

person pri 技術分享 周期 銷毀 out 方法 class 屬性的區別 前言 靜態屬性和方法必須用static修飾符 靜態屬性和非靜態屬性的區別: 1、在內存中存放位置不同 所有帶static修飾符的屬性或者方法都存放在內存中的方法區 而非靜態屬性存放在內存