JAVA-初步認識-第三章-局部代碼塊


一. 代碼塊的定義

任何大括號封裝的,得到的都是一個區塊,可以稱為代碼塊。如果在代碼塊的前面加上if(), 那么這就叫做if代碼塊;如果加的是

public static void main(String[] args),那么這就叫做主函數代碼塊。這些都相當於代碼塊的名稱。如果什么都不加,那么就稱為局部代碼塊。

注意:上面的例子為什么能夠輸出if語句的A,條件表達式為false,為什么能夠成立?還是自己編寫的時候不注意。if(條件表達式)后面帶了分號,將if代碼塊變為了局部代碼塊。

 

二. 深入解析局部代碼塊

有名字的都叫xxx代碼塊,如類代碼塊,主函數代碼塊,if代碼塊,如果代碼塊前面沒有語句,那么就叫做局部代碼塊。

有局部代碼塊,也有局部變量。→是否可以說,局部變量概念是由局部代碼塊中引申出來的

舉例來解析局部變量。下面的源代碼在運行的時候,DOS會報錯,顯示System.out.println("over......."+m)語句找不到符號m,

究其原因就在於m是上面局部代碼塊里的變量,不適用於外面的范圍,變量有自己的作用域。這種沒有名字的局部代碼塊的作用就體現在這,雖然運行起來和順序結構很相似,但還是有區別的。

{}的作用就是能划定作用范圍,只在括號內起作用。

探討一下例子背后的原理:jvm執行到int m=89;時,內存中會開辟一小塊區間,命名為m,賦值為89,隨着輸出語句的結束以及}符號的到來,名為m的小塊內存就被會釋放,也就是說不存在叫m的內存塊。為什么m內存塊會被釋放,原因在於m能夠作用的范圍結束了。如果繼續保留,就會浪費內存空間。jvm運行到System.out.println("over......."+m)語句時,壓根就沒有叫做m的內存塊變量了。

這里再強調一下局部代碼塊的作用:如果程序中定義的變量非常多,但是變量的作用范圍非常小,在這里作用后,后面就不再起作用,為了節約內存,我們就會將此變量的運算封裝在局部代碼塊里,運算到后面的時候,此變量就會被釋放,節省內存。這里還要說一點,雖然計算機內存很大,但是虛擬機可操作的內存並不大,因此,必要的時候,就要優化程序。

局部代碼塊可以定義局部變量的生命周期

借由局部代碼塊的概念,我們來探討一下局部變量。

注意:只要是主函數里的變量,都被稱作局部變量。沒有學到后面的知識點,現有的觀點來看,類和主函數算是很高的層面,但實際上只是一個更大整體中的一部分。

總結:由眾多判斷結構if語句引出的代碼塊概念。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM