欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java final本質(zhì)詳解

 更新時間:2019年09月24日 08:36:15   作者:(*-*)浩  
在本篇文章里小編給大家分享的是關(guān)于java final本質(zhì)的相關(guān)知識點內(nèi)容,有需要的朋友們可以參考下。

含義:final 含義是【僅可以被賦值一次】。

賦值位置:在【聲明時賦值】、在【構(gòu)造方法中賦值】

舉例:

package com.dada.data;

 

public class TestFinal {

  // 1.聲明時賦值

  private final int i = 0;

  private final int j;

  public TestF() {

    // 2.構(gòu)造方法中賦值

    j = 10;

  }

}

注意:我們說 final 是僅可以賦值一次沒錯,但是我們知道在 java 中【值有兩種】,【基本數(shù)據(jù)類型的值】和【引用數(shù)據(jù)類型的值】,對于基本數(shù)據(jù)類型來說,賦值就是直接把【值賦給變量】,對于引用數(shù)據(jù)類型來說就是把【引用賦給變量】。

因此:僅可以賦值一次的含義也就分為兩種情況了,1.如果是基本數(shù)據(jù)類型,那么就是值本身不能變;2.如果是引用數(shù)據(jù)類型的值,那就是引用不能變,但是被引用的內(nèi)容是可以變的。

舉例:

定義 Student 類:

package com.dada.data;

 

public class Student {

  private int id;

  private String name;

  private int score;

  public Student(int id, String name, int score) {

    this.id = id;

    this.name = name;

    this.score = score;

  }

  public int getId() {

    return id;

  }

  public void setId(int id) {

    this.id = id;

  }

  public String getName() {

    return name;

  }

  public void setName(String name) {

    this.name = name;

  }

   

  public int getScore() {

    return score;

  }

  public void setScore(int score) {

    this.score = score;

  }

   

  @Override

  public String toString() {

    return "id: " + id + "\t name:" + name + "\tscore:" + score;

  }

}

定義測試類:

package com.dada.data;

 

public class TestFinal {

  private final Student ss;

   

  public static void main(String[] args) {

    TestFinal tf = new TestFinal();

  }

  public TestFinal() {

    Student student = new Student(1, "dada", 3);

    // 第一次賦值

    ss = student;

    System.out.println(ss.toString());

     

    // 修改引用所對應(yīng)的對象的內(nèi)容

    student.setId(2);

    student.setName("hehe");

    student.setScore(10);

    System.out.println(ss.toString());

  }

}

輸出結(jié)果:

id: 1   name:dada  score:3

id: 2   name:hehe  score:10

總結(jié):

由上面的例子可以知道,變量被 final 修飾之后其引用的內(nèi)容還是可以被修改的,之所以很多時候我們感覺它不能被修改是因為:

1.通常我們是在定義變量時進行的賦值,這個時候?qū)τ诨绢愋蛿?shù)據(jù)來說它是永遠不能改變的。

2.對于引用類型數(shù)據(jù)來說,因為我們無法獲取對應(yīng)的引用,所以也會覺得引用類型數(shù)據(jù)也是不能被修改的。

以上就是java final本質(zhì)解釋的詳細內(nèi)容,更多請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • maven+阿里云創(chuàng)建國內(nèi)鏡像的中央倉庫(親測可用)

    maven+阿里云創(chuàng)建國內(nèi)鏡像的中央倉庫(親測可用)

    本篇文章主要介紹了maven+阿里云創(chuàng)建國內(nèi)鏡像的中央倉庫(親測可用),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Java String.replace()方法

    Java String.replace()方法"無效"的原因及解決方式

    這篇文章主要介紹了Java String.replace()方法"無效"的原因及解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 詳解SpringCloud Gateway 2020.0.2最新版

    詳解SpringCloud Gateway 2020.0.2最新版

    這篇文章主要介紹了SpringCloud Gateway 2020.0.2最新版,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Spring Security OAuth2 實現(xiàn)登錄互踢的示例代碼

    Spring Security OAuth2 實現(xiàn)登錄互踢的示例代碼

    這篇文章主要介紹了Spring Security OAuth2實現(xiàn)登錄互踢的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • java圖片驗證碼生成教程詳解

    java圖片驗證碼生成教程詳解

    這篇文章主要為大家詳細介紹了java圖片驗證碼生成教程,從簡單到復(fù)雜,從本地到前后臺,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Spring Task定時任務(wù)每天零點執(zhí)行一次的操作

    Spring Task定時任務(wù)每天零點執(zhí)行一次的操作

    這篇文章主要介紹了Spring Task定時任務(wù)每天零點執(zhí)行一次的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 使用Spring boot標記一個方法過時

    使用Spring boot標記一個方法過時

    這篇文章主要介紹了使用Spring boot標記一個方法過時,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 使用Java的Spring框架編寫第一個程序Hellow world

    使用Java的Spring框架編寫第一個程序Hellow world

    這篇文章主要介紹了Java的Spring框架并用其開始編寫第一個程序Hellow world的方法,Spring是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • 淺談Java多線程編程中Boolean常量的同步問題

    淺談Java多線程編程中Boolean常量的同步問題

    這篇文章主要介紹了淺談Java多線程編程中Boolean常量的同步問題,主要針對線程之間同步了不同的布爾對象的問題,需要的朋友可以參考下
    2015-10-10
  • Java 添加、讀取和刪除 Excel 批注的操作代碼

    Java 添加、讀取和刪除 Excel 批注的操作代碼

    這篇文章主要介紹了Java 添加、讀取和刪除 Excel 批注的操作方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04

最新評論