Java中的變量

java類的成員變量有兩種:一種是被static關鍵字修飾的變量,叫類變量或者靜態變量;另一種沒有static修飾,為實例變量

在語法定義上的區別:靜態變量前要加static關鍵字,而實例變量前則不加。

在程序運行時的區別:實例變量屬于某個對象的屬性,必須創建了實例對象,其中的實例變量才會被分配空間,才能使用這個實例變量。靜態變量不屬于某個實例對象,而是屬于類,所以也稱為類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。總之,實例變量必須創建對象后才可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。

從生存周期講,實例變量的生存周期從執行new運算后創建對象開始存在,直到Java垃圾回收器銷毀這個對象結束,實例變量的生存周期與對象的生存周期一致;類變量的生存期從定義類開始存在,直到該類所在的程序停止執行為止,很明顯類變量的生存周期要大于實例變量的生存周期。


成員變量和局部變量的區別:

作用域:成員變量的作用域比局部變量作用域大;

變量的初始值:成員變量可以顯式地賦值,也可以取該成員變量數據類型的默認值。但局部變量必須顯式地賦值,如果一個變量未顯式地賦值,那么程序將無法訪問該變量;

存儲位置:成員變量中的實例變量存儲在堆內存中,結束時需要垃圾回收器回收空間,局部變量和類變量是存儲在棧內存中的,無須垃圾回收器回收,隨著程序塊運行結束而結束。


變量使用注意:

  • 在程序中能用局部變量實現的盡量不用成員變量實現,盡可能的減小變量的生存期,以節省內存開銷;
  • 針對局部變量而言,在不影響功能的情形下,要盡可能的縮小變量的作用域。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373987.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373987.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373987.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

無限漫游

一、FAT AP架構下,AP設備不做認證時: (1) AP1,AP2正常工作,發送Beacon幀,向STA通告支持的無線服務; (2) STA搜索到AP1的信號,向AP1發Probe Request,請求獲取AP1所提供的無線服務;AP…

uni-app內置地圖軌跡_MIUI11 新增親情守護,支持安全圍欄、運動軌跡功能

點擊右上角關注我們,每天給您帶來最新最潮的科技資訊,讓您足不出戶也知道科技圈大事!日前,小米 MIUI 體驗總負責人 MIUI小凡 在微博上為大家預告了 MIUI11 的新特性「親情守護」,并表示「在親情守護中,我們…

:before與:after偽類的應用

1.小三角樣式 .tip{ position:relative; display:inline-block; width:100px; margin:100px; padding:30px 20px; color:#fff; border:1px solid #666; border-radius:5px; background-color:rgba(0,153,51,1);}.tip:before{ content:; posit…

小心重載API方法

重載方法是API設計中的重要概念,尤其是當您的API是流利的API或DSL( 特定于域的語言 )時。 對于jOOQ就是這種情況,在這種情況下,您經常想使用與完全相同的方法名稱來與庫進行各種交互。 示例:jOOQ條件 pac…

phpcms 下載模型列表頁直接點擊下載

下載模型設置本地下載 列表頁模板直接調用 <article class"prjDown"><p class"prjDownTitle">方案下載</p><nav class"prjDownNav"><ul>{pc:content action"lists" catid"$catid" num"3…

為什么Java中類方法不能訪問實例方法

我們已經知道類體中的方法分為實例方法和類方法兩種&#xff0c;用static修飾的是類方法。二者有什么區別呢&#xff1f;當一個類創建了一個對象后&#xff0c;這個對象就可以調用該類的方法。 當類的字節碼文件被加載到內存時&#xff0c;類的實例方法不會被分配入口地址&…

python展開 c函數中的宏預處理_C中的預處理宏

C中的預處理宏宏定義就屬于預處理命令的一種。那么&#xff0c;什么是宏呢&#xff1f;宏&#xff1a;c語言標準允許在程序中用一個標識符來表示一個字符串。標識符就是宏名。宏替換&#xff1a;宏替換就是宏定義。在編譯預處理中&#xff0c;將程序中所有的宏名用相應的字符串…

(轉) 中斷處理程序中斷服務例程

關于中斷處理程序和中斷服務例程ISR的區別及聯系&#xff0c;之前一直搞混&#xff0c;今天抽時間將兩者關系弄弄清楚。ok,下面進入主題。首先中斷處理程序(Interrupt Handler)和中斷服務例程ISR(Inerrupt Service Routine)是兩個不同的概念.簡單來說就是&#xff0c;一條中斷線…

使用SQL:2003 MERGE語句的奧術魔術

時不時地&#xff0c;由于以下任何原因&#xff0c;我們不得不將INSERT與UPDATE區分開來感到尷尬&#xff1a; 我們必須至少發表兩個聲明 我們必須考慮性能 我們必須考慮比賽條件 我們必須在[UPDATE; 如果UPDATE_COUNT 0 THEN INSERT]和[INSERT; 如果例外然后更新] 我們必…

Swing 學習小記

初學Swing一路問題&#xff0c;一路學習 問題一&#xff1a;JPanel中動態組件添加&#xff0c;刷新問題&#xff1f; 錯誤一&#xff1a;使用repaint()方法&#xff0c;以為可以刷新&#xff0c;可行不通。 錯誤繼續發生&#xff1a;還是使用repaint()方法&#xff0c;與之前不…

leetcode Spiral Matrix

題目連接 https://leetcode.com/problems/spiral-matrix/ Spiral Matrix Description Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order. For example, Given the following matrix: [   [ 1, 2, 3 ],   [ 4, 5…

python學生類出不來中文_Python 這類看起來學習門檻低的語言,是否真的適合入門編程學習?...

Python(計算機程序設計語言)Python是一種跨平臺的計算機程序設計語言。 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。最初被設計用于編寫自動化腳本(shell)&#xff0c;隨著版本的不斷更新和語言新功能的添加&#xff0c;越多被用于獨立的、大型項目的開…

克隆可序列化和不可序列化的Java對象

開發人員經常依靠3d方庫來避免重新發明輪子&#xff0c;尤其是在Java世界中&#xff0c;Apache和Spring這樣的項目如此盛行。 在處理這些框架時&#xff0c;我們通常很少或根本無法控制其類的行為。 這有時會導致問題。 例如&#xff0c;如果您想深度克隆不提供合適克隆方法的對…

2014編程之美資格賽

2014 編程之美挑戰賽 --- 資格賽真題 題目1 : 同構 時間限制:2000ms單點時限:1000ms內存限制:256MB描述 給定2個樹A和B&#xff0c;保證A的節點個數>B的節點個數。 現在你需要對樹A的邊進行二染色。 一個好的染色方案&#xff0c;指不存在一個樹A中的連通塊&#xff0c;同時…

JavaScript之面向對象學習六原型模式創建對象的問題,組合使用構造函數模式和原型模式創建對象...

一、仔細分析前面的原型模式創建對象的方法,發現原型模式創建對象,也存在一些問題&#xff0c;如下&#xff1a; 1、它省略了為構造函數傳遞初始化參數這個環節,結果所有實例在默認的情況下都將取得相同的屬性值&#xff0c;這還不是最大的問題&#xff01; 2、最大的問題是原型…

stand up meeting 12/11/2015

part組員今日工作工作耗時/h明日計劃工作耗時/hUI馮曉云完成單詞釋義熱度排序&#xff1b;允許用戶自主添加釋義&#xff1b;完成了button位置的修正&#xff08;finally&#xff09;和彈窗的美化&#xff1b; 6try the backup plan 6PDF Reader朱玉影 完成了pdf文件的打…

ssrf漏洞內網滲透_滲透技巧之SSRF

SSRF——服務端請求偽造&#xff0c;上一篇&#xff0c;我談到了CSRF客戶端請求偽造&#xff0c;這個是我們通過攻擊用戶&#xff0c;引誘客戶點擊我們偽造好的表單&#xff0c;從而達到我們攻擊的目的&#xff0c;是從客戶端發起的&#xff0c;那么SSRF服務端請求偽造當然是通…

引入故意緩存

幾周前&#xff0c;我參加了ThoughtWorks 技術雷達研討會。 我在ThoughtWorks工作了多年&#xff0c;想想是否有人知道這些人在軟件開發方面的發展趨勢。 在技??巧上帶有上升箭頭的數字中&#xff0c;第17位被稱為“周到緩存”。 和斯科特肖一起喝酒時&#xff0c;我問他是什…

(小議)面向對象

什么是面向對象&#xff1f;如果讓我理解&#xff0c;只有一句話&#xff1a;它是一個與面向過程相對的概念&#xff0c;是一種進化或者升級。人們所設計的程序幾乎都是線性思維&#xff0c;即一步一步往下執行。對于一個沒有人機交互的簡單程序來說&#xff0c;這是簡單易行的…

int類型究竟占幾個字節

最近在看深入理解計算機系統這本書&#xff0c;上面提到了在32位機器和64機器中int類型都占用4個字節。后來&#xff0c;查了The C Programming language這本書&#xff0c;里面有一句話是這樣的&#xff1a;Each compiler is free to choose appropriate sizes for its own ha…