java靜態變量有哪些特點,java靜態變量有什麼用

本文目錄一覽:

java中靜態變量和靜態方法的優缺點

java靜態變量和靜態方法會在程序初始化運行時候就加載到內存。

優點:不需要在進行實例化。靜態變量的值,直接賦新值即可,不需要參數傳遞,之後可以直接進行參數引用即可;靜態方法可以直接通過”類名.方法”的形式進行方法調用。通常方法被多次調用,並且方法中沒有動態方法引用的時候使用比較方便。

缺點:初始化加載到內存,如果後續沒被引用,加大了內存負擔和程序運行負擔,影響程序運行效率(一般很小),並且靜態變量如果多處被引用賦值,很可能導致參數值混亂(如果是不變的值,最後加上final修飾,強制不能修改)。

備註:上面的都是理論知識,實際開發中,根據實際項目需求進行靈活調整即可。

java中靜態變量和靜態方法分別有什麼特點?深圳

靜態變量,是一但java虛擬機載入java代碼時就被負初值的,並且只負一次值,是多個對象共有的值。 靜態方法最點型的就是main方法 main方法是為了讓程序找到入口,因為靜態是最先被編譯的,靜態方法可以用 類名。方法名 直接調用。

靜態變量的變量特點

靜態局部變量屬於靜態存儲方式,它具有以下特點:

(1)靜態局部變量在函數內定義,但不像自動變量那樣,當調用時就存在,退出函數時就消失。靜態局部變量始終存在着,也就是說它的生存期為整個源程序。

(2)靜態局部變量的生存期雖然為整個源程序,但是其作用域仍與自動變量相同,即只能在定義該變量的函數內使用該變量。退出該函數後, 儘管該變量還繼續存在,但不能使用它。

(3)允許對構造類靜態局部量賦初值。若未賦以初值,則由系統自動賦值。數值型變量自動賦初值0,字符型變量賦空字符。

(4)對基本類型的靜態局部變量若在說明時未賦以初值,則系統自動賦予0值。而對自動變量不賦初值,則其值是不定的。 根據靜態局部變量的特點, 可以看出它是一種生存期為整個源文件的量。雖然離開定義它的函數後不能使用,但如再次調用定義它的函數時,它又可繼續使用, 而且保存了前次被調用後留下的值。 因此,當多次調用一個函數且要求在調用之間保留某些變量的值時,可考慮採用靜態局部變量。雖然用全局變量也可以達到上述目的,但全局變量有時會造成意外的副作用,因此仍以採用局部靜態變量為宜。 給讀者一個簡單直白的例子(區別靜態局部變量和動態局部變量): #includestdio.hint fun(int n){    static int f=1;    f=f*n;    return f;}void main(){    int i;    for(i=1;i=5;i++)    printf(fun(%d)=%d\n,i,fun(i));}這裡的運行結果是: fun(1)=1fun(2)=2fun(3)=6fun(4)=24fun(5)=120說明f在加了static的類型限制之後,就相當於全局變量,函數調用完了之後,修改過的f的值仍然是有效的(即這個程序相當於求i的階乘了)。而如果不加static的類型限制,那麼,會是什麼結果呢,我們看下面的代碼: #includestdio.hint fun(int n){    int f=1;    f = f * n;    return f;}void main(){    int i;    for(i=1;i=5;i++)        printf(fun(%d)=%d\n,i,fun(i));}程序的運行結果是: fun(1)=1fun(2)=2fun(3)=3fun(4)=4fun(5)=5也就是說,這時函數fun中的變量f的生命周期就僅限於fun函數的範圍內了,在main中每次傳入新的參數i,f就會計算1*i的值並返回,而不會像之前那樣不斷的累乘了。

———————————————————————————————————————————————

下面是java例子: public class StaticTest{    static int f=1;//java聲明靜態變量要放到函數外面,結果和c的結果一樣    int fun(int n){        f = f * n;        return f;    }    public static void main(String[] args){        StaticTest st = new StaticTest();        for(int i = 1; i = 5; i++)            System.out.println(st.fun(i));    }}—————————————————————————————————————

Module Module1

Public a As Integer 『未賦值的情況下a的值是0

End Module

Public Class Form1

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

a += 1

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

a += 1

MsgBox(a) 』結果是2(0+1+1)因為是a是模塊級靜態全局變量,所以按按鈕3以後,直到關閉程序a的值都會是2

End Sub

End Class

java中靜態變量和靜態方法分別有什麼特點?

靜態變量

可以將靜態變量理解為類變量(與對象無關),而實例變量則屬於一個特定的對象。

靜態變量有兩種情況:

靜態變量是基本數據類型,這種情況下在類的外部不必創建該類的實例就可以直接使用

靜態變量是一個引用。這種情況比較特殊,主要問題是由於靜態變量是一個對象的引用,那麼必須初始化這個對象之後才能將引用指向它。因此如果要把一個引用定義成static的,就必須在定義的時候就對其對象進行初始化。

靜態方法

與類變量不同,方法(靜態方法與實例方法)在內存中只有一份,無論該類有多少個實例,都共用一個方法。

靜態方法與實例方法的不同主要有:

靜態方法可以直接使用,而實例方法必須在類實例化之後通過對象來調用。

在外部調用靜態方法時,可以使用「類名.方法名」或者「對象名.方法名」的形式。實例方法只能使用後面這種方式。

靜態方法只允許訪問靜態成員。而實例方法中可以訪問靜態成員和實例成員。

靜態方法中不能使用this(因為this是與實例相關的)。

java的靜態類型有什麼特點

靜態屬性:隨着類的加載而加載,該屬性不屬於某個對象,屬於整個類

靜態方法:直接使用類名調用,靜態方法里不能訪問非靜態成員變量

靜態類:不能直接創建對象,不可被繼承

原創文章,作者:TJFLX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/317216.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TJFLX的頭像TJFLX
上一篇 2025-01-11 16:27
下一篇 2025-01-11 16:27

相關推薦

  • int類型變量的細節與注意事項

    本文將從 int 類型變量的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變量進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變量。 一、定義與聲明 int…

    編程 2025-04-29
  • 為什麼用cmd運行Java時需要在文件內打開cmd為中心

    在Java開發中,我們經常會使用cmd在命令行窗口運行程序。然而,有時候我們會發現,在運行Java程序時,需要在文件內打開cmd為中心,這讓很多開發者感到疑惑,那麼,為什麼會出現這…

    編程 2025-04-29
  • Python input參數變量用法介紹

    本文將從多個方面對Python input括號里參數變量進行闡述與詳解,並提供相應的代碼示例。 一、基本介紹 Python input()函數用於獲取用戶輸入。當程序運行到inpu…

    編程 2025-04-29
  • Centos7配置靜態ip

    本文將詳細闡述如何在Centos7系統中配置靜態ip。 一、查看網絡接口 在配置靜態ip之前,我們首先需要查看系統中的網絡接口,以確定我們需要配置的網卡是哪一個。 ifconfig…

    編程 2025-04-29
  • Python匿名變量的使用方法

    Python中的匿名變量是指使用「_」來代替變量名的特殊變量。這篇文章將從多個方面介紹匿名變量的使用方法。 一、作為佔位符 匿名變量通常用作佔位符,用於代替一個不需要使用的變量。例…

    編程 2025-04-29
  • Python變量在內存中的存儲

    該文章將從多個方面對Python變量在內存中的存儲進行詳細闡述,包括變量的聲明和賦值、變量的引用和指向、內存地址的變化、內存管理機制等。 一、聲明和賦值 在Python中,變量聲明…

    編程 2025-04-29
  • Python變量類型用法介紹

    Python是一種解釋型編程語言,它提供了豐富的數據類型,包括數字、字符串、列表、元組、集合、字典等。Python變量類型的定義是Python程序開發的基礎,本文將從以下幾個方面對…

    編程 2025-04-28
  • Python print輸出變量

    Python是一種腳本語言,語法簡單易懂,目前被廣泛應用於數據處理、人工智能、web開發、遊戲開發等領域。其中print函數是Python中最常用的函數之一,用於將變量輸出到控制台…

    編程 2025-04-28
  • Python定義變量

    Python是一門高級編程語言,變量是Python編程中非常重要的一個概念。Python的變量定義方式非常簡單,可以在程序中隨時定義一個變量來存儲數據,這方便了整個程序的邏輯編寫,…

    編程 2025-04-28
  • Python中字典的特點

    Python中的字典是一種無序的、可變的鍵(key)值(value)對集合。字典是Python的核心數據結構之一,它具有以下幾個特點: 一、隨機性 字典是無序的,即字典中的鍵值對沒…

    編程 2025-04-28

發表回復

登錄後才能評論