国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java變量和對象的作用域

Java變量和對象的作用域

2020-09-02 10:18AlanLee(Java) Java教程

本文主要介紹了Java變量和對象的作用域的相關知識。具有很好的參考價值,下面跟著小編一起來看下吧

大多數程序設計語言都提供了“作用域”(scope)的概念。

對于在作用域里定義的名字,作用域同時決定了它的“可見性”以及“存在時間”。在c,c++和java里,作用域是由花括號的位置決定的。

變量的作用域

例子:

?
1
2
3
4
5
6
7
8
9
10
{
  int x = 12;
  /* only x available */
  {
    int q = 96;
    /* both x & q available */
  }
  /* only x available */
  /* q “out of scope” */
}

java用一對大括號作為語句塊的范圍,稱為作用域,作為在作用域里定義的一個變量,它只有在哪個作用域結束之前才可使用。

在java中不能像下面這樣書寫代碼:

?
1
2
3
4
5
6
{
  int x = 12;
  {
    int x = 96; /* illegal */
  }
}

java編譯器會認為變量已被定義,所以作用域中的變量不能重復定義,但是在c和c++中能將一個變量“隱藏”在一個更大的作用域里,在c和c++中被允許,在java中是不允許的,因為java的設計者認為這樣做使程序產生了混淆。

再來看兩個例子,為了讓大家看到效果這里使用截圖的方式:

Java變量和對象的作用域

Java變量和對象的作用域

我們再來看這段代碼,大家思考一個問題,第11行和第12行為什么沒有語法錯誤?代碼如下:

Java變量和對象的作用域

Java變量和對象的作用域

如果我們交換一下位置呢,代碼如下:

Java變量和對象的作用域

離開作用域,變量所分配的內存空間將被jvm回收,所以語法不會有錯誤,而第二種寫法name并沒有離開{}作用域,所以會語法錯誤。

上述的變量都是局部變量,那么如果是在有全局變量的情況下又是怎樣一種結果呢?我們來用代碼說話,代碼如下:

Java變量和對象的作用域

大家仔細的觀察并結合代碼思考,可以得出變量的作用域結論如下:

在同一作用域范圍的包裹下全局變量名和局部變量名是可以變量名相同的,在同一個作用域范圍的包裹下局部變量和局部變量不可以變量名相同(作用域內不能重復命名),使用變量的時候如果不指明使用全局變量還是局部變量,那么默認的就是使用局部的那個變量,但是如果局部變量超出了它本身的作用域范圍則會失效,被jvm垃圾回收,那么則可以重復命名此變量,并使用最新定義的這個局部變量。

對象的作用域

java對象不具備與朱類型一樣的存在時間。用new關鍵字創建一個java對象的時候,它會超出作用域的范圍之外。所以假若使用下面這段代碼:

?
1
2
3
{
  string s = new string("a string");
} /* 作用域的終點 */

那么句柄s,也就是引用會在作用域的終點處消失。然而,s指向的string對象依然占據著內存空間。在上面這段代碼里,我們沒有辦法繼續使用這個對象,因為指向它的唯一一個句柄已經超出了作用域的邊界。

這樣造成的結果是:對于用new創建的對象,只要我們愿意,它們就會一直保留下去。這個編程問題在c和c++里特別突出。在c++里遇到的麻煩最大:由于不能從語言獲得任何幫助,所以在需要對象的時候,根本無法確定它們是否可用。而且最麻煩的是,在c++里,一旦完成工作,必須保證將對象手動清除。

這樣便帶來了一個有趣的問題。假如 java 讓對象依然故我,怎樣才能防止它們大量充斥內存,并最終造成程序的“凝固”呢。在 c++里,這個問題最令程序員頭痛。但 java 以后,情況卻發生了改觀。 java 有一個特別的“垃圾收集器”,它會查找用 new 創建的所有對象,并辨別其中哪些不再被引用。隨后,它會自動釋放由那些閑置對象占據的內存,以便能由新對象使用。這意味著我們根本不必操心內存的回收問題。只需簡單地創建對象,一旦不再需要它們,它們就會自動離去。這樣做可防止在 c++里很常見的一個編程問題:由于程序員忘記釋放內存造成的“內存溢出”。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://www.cnblogs.com/AlanLee/p/6627949.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产视频久久久 | 国产一区二区三区免费看 | 亚洲视频在线观看 | 一级性视频| 欧美大片免费影院在线观看 | 国产最新视频 | 在线观看中文字幕 | 日韩成人av电影 | 91久久综合 | 色在线影院 | 成人免费一区二区三区视频网站 | 这里只有精品在线视频观看 | 国产精品视频一二三 | 在线观看国产视频 | 亚洲视频1区 | 日本不卡一区二区三区 | 九一精品 | 久久久久一区二区 | 亚洲毛片 | 久草精品在线 | 91羞羞网站 | 亚洲一区精品在线 | 九九99| 亚洲国产91 | 亚洲免费网站 | 在线精品亚洲欧美日韩国产 | 三区在线 | 色www精品视频在线观看 | 久久综合一 | av免费一区二区 | 精品小视频 | 亚洲精品综合 | 欧美国产日韩一区 | 日韩成人影院 | 天天夜操| 99亚洲精品| 亚洲男人在线天堂 | 久久久精品亚洲 | 日韩国产欧美一区 | 日韩国产欧美精品 | 亚洲日韩成人 |