局部变量和成员变量的初始值问题
生活随笔
收集整理的這篇文章主要介紹了
局部变量和成员变量的初始值问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
引言
大家都知道,在java中,成員變量是可以不用給初始值的,默認就有一個初始值。而局部變量,必須顯示給予一個初始值,否則編譯無法通過。大家在學習的時候,一般是直接把這個結論直接記下,很少去考慮原因。
所以,這是為什么呢?
正文
比如
這段代碼是會出現(xiàn)如下編譯異常的
但是,像下面這么寫就不會
javac這么設計的原因,不是因為推斷不出局部變量的初始值,而是出于嚴謹性的考慮。
成員變量
你無法確定你的調用順序,例如,你可以這么調
也可以這么調
編譯器無法確定name的初始值,于是給了一個初始值。真正的值,交給jvm在運行時期處理。
局部變量
你可以明確你的調用順序,我相信應該沒人會像下面這么寫
在局部變量中,必然是先聲明一個變量,再進行賦值。于是,java的編譯器覺得,既然你肯定是先聲明一個變量,再調這個變量了。那就在聲明的時候,就把初始值給我吧。不是我不能推斷你的初始值,而是讓你在聲明的時候就把初始值給我,我是為你好,幫你減少代碼出錯的可能性。
總結
以上是生活随笔為你收集整理的局部变量和成员变量的初始值问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring 的优秀工具类盘点
- 下一篇: nginx: [error] open(