色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java 值類型和引用類型的區(qū)別

傅智翔1年前11瀏覽0評論

在Java中,變量可以分為值類型和引用類型兩種。

值類型變量保存值本身,而引用類型變量保存的是一個(gè)指向內(nèi)存中對象的地址。

// 定義兩個(gè)值類型變量
int a = 10;
double b = 3.14;
// 定義一個(gè)引用類型變量
String str = "Hello World!";

在Java中,值類型變量在聲明的同時(shí)就會(huì)被初始化,因?yàn)樗鼈儽4娴氖侵当旧?,所以不存在空指針的問題。

而引用類型變量需要通過new關(guān)鍵字來創(chuàng)建對象,并且如果沒有賦值,它們的默認(rèn)值是null,意味著它們指向的是一個(gè)不存在的對象。

// 定義一個(gè)空的引用類型變量
Object obj = null;
// 創(chuàng)建一個(gè)對象,并將引用類型變量指向它
obj = new Object();

此外,對于值類型變量,它們之間的賦值是直接將值賦給另一個(gè)變量,而對于引用類型變量,它們之間的賦值是將一個(gè)變量指向的對象的地址賦給另一個(gè)變量。

// 定義兩個(gè)值類型變量
int a = 10;
int b = a;  // 直接將a的值賦給b
// 定義兩個(gè)引用類型變量
String str1 = "Hello";
String str2 = str1;  // 將str1指向的對象地址賦給str2

需要注意的是,對于引用類型變量,它們指向的對象可以被多個(gè)變量共享,因此對于一個(gè)引用類型變量所指向的對象的修改,會(huì)影響到所有共享該對象的變量。

// 定義一個(gè)List對象,兩個(gè)引用類型變量共享它
List<String> list = new ArrayList<>();
List<String> list2 = list;
// 向list中添加元素
list.add("Hello");
System.out.println(list2.get(0));  // 輸出"Hello"

以上就是Java中值類型和引用類型的區(qū)別,了解這些對于理解Java程序的運(yùn)行機(jī)制很有幫助。