眾所周知,所有權是Rust區別於其他語言的一大特色,只要代碼滿足了所有權規則,我們就不用擔心記憶體的泄露的問題。 讓代碼在編譯階段就解決記憶體的問題,而不是在運行崩潰後再調試。 Rust中,所有權和借用的規則其實並不複雜,所有權有3條規則,借用只有2條規則。 所有權的規則 1. Rust中的每一個值都有 ...
轉自:
http://www.java265.com/JavaMianJing/20210330/161709004544.html
下文將從4個方面講述成員變數與局部變數的不同之處,如下所示:
從語法形式上分析:
成員變數是屬於類的,
局部變數是在代碼塊或方法中定義的變數或是方法的參數;
成員變數可以被 public,private,static 等修飾符所修飾,
而局部變數不能被訪問控制修飾符及 static 所修飾;
但是,成員變數和局部變數都能被 final 所修飾。
從變數在記憶體中的存儲方式來分析:
當成員變數是使用static
修飾的,則這個成員變數是屬於類的,
當沒有使用static
修飾,這個成員變數是屬於實例的。
而對象存在於堆記憶體,局部變數則存在於棧記憶體。
從變數在記憶體中的生存時間上分析:
成員變數是對象的一部分,它隨著對象的創建而存在,
而局部變數隨著方法的調用而自動消失。
成員變數如果沒有被賦初值分析:
則會自動以類型的預設值而賦值(一種情況例外:被 final 修飾的成員變數也必須顯式地賦值),
而局部變數則不會自動賦值。