Java中Final修飾一個變量時,是引用不能變還是引用的對象不能變


Java中,使用Final修飾一個變量,是引用不能變,還是引用對象不能變?

  是引用對象的地址不能變,引用變量所指的對象的內容可以改變。

  final變量永遠指向這個對象,是一個常量指針,而不是指向常量的指針。

  比如: final StringBuffer sb=new StringBuffer("abc");

  對sb重新賦值 sb=new StringBuffer("cde");

  會出現編譯錯誤,被final修飾的變量是不能重新賦值的;

  但是 sb.append("ced");

  是可以編譯通過的。

Final作為一個修飾符:

  1. 可以修飾類、變量、方法
  2. 被final修飾的類不能被繼承。防止子類繼承重寫父類方法
  3. 被final修飾的方法不能被重寫
  4. 被final修飾的變量是一個常量只能被賦值一次。(既可以修飾成員變量,也可以修飾局部變量)
  5. 內部類定義在類中的局部位置上時,只能訪問該局部被final修飾的局部變量。


免責聲明!

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



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