java面試題:final修飾局部變數的問題__java面試題型

來源:互聯網
上載者:User
/*
面試題:final修飾局部變數的問題
基本類型:基本類型的值不能發生改變。
參考型別:參考型別的地址值不能發生改變,但是,該對象的堆記憶體的值是可以改變的。
*/
class Student {
int age = 10;
}


class FinalTest {
public static void main(String[] args) {
//局部變數是基礎資料型別 (Elementary Data Type)
int x = 10;
x = 100;
System.out.println(x);
final int y = 10;
//無法為最終變數y分配值
//y = 100;
System.out.println(y);
System.out.println("--------------");

//局部變數是引用資料類型
Student s = new Student();
System.out.println(s.age);
s.age = 100;
System.out.println(s.age);
System.out.println("--------------");

final Student ss = new Student();
System.out.println(ss.age);
ss.age = 100;
System.out.println(ss.age);

//重新分配記憶體空間
//無法為最終變數ss分配值
ss = new Student();
}

}

————————————

/*
final修飾變數的初始化時機
A:被final修飾的變數只能賦值一次。
B:在構造方法完畢前。(非靜態常量)
*/
class Demo {
//int num = 10;
//final int num2 = 20;

int num;
final int num2;

{
//num2 = 10;
}

public Demo() {
num = 100;
//無法為最終變數num2分配值
num2 = 200;
}
}


class FinalTest2 {
public static void main(String[] args) {
Demo d = new Demo();
System.out.println(d.num);
System.out.println(d.num2);
}
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.