国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

java中String類型變量的賦值問題介紹

2019-11-20 10:21:13
字體:
供稿:網(wǎng)友

運行下面這段代碼,其結(jié)果是什么?

package com.test;public class Example {    String str = new String("good");  char[] ch = { 'a', 'b', 'c' };  public static void main(String[] args) {    Example ex = new Example();    ex.change(ex.str, ex.ch);    System.out.println(ex.str);    System.out.println(ex.ch);  }  public void change(String str, char ch[]) {    str = "test ok";    ch[0] = 'g';  }  }

結(jié)果如下:

goodgbc

解說:

java 中String是 immutable的,也就是不可變,一旦初始化,其引用指向的內(nèi)容是不可變的(注意:是內(nèi)容不可變)。

也就是說,假設代碼中有String str = “aa”;str=“bb”;,則第二條語句不是改變“aa”原來所在存儲地址中的內(nèi)容,而是另外開辟了一個空間用來存儲“bb”;同時由于str原來指向的“aa”現(xiàn)在已經(jīng)不可達,jvm會通過GC自動回收。
 
在方法調(diào)用時,String類型和數(shù)組屬于引用傳遞,在上述代碼中,str作為參數(shù)傳進change(String str, char ch[]) 方法,方法參數(shù)str指向了類中str指向的字符串,但str= "test ok"; 語句使得方法參數(shù)str指向了新分配的地址,該地址存儲“test ok”,而原來的str仍然指向“good”。對于數(shù)組而言,在change方法中,方法參數(shù)ch指向了類中ch指向的數(shù)組,ch[0] = 'g';語句改變了類中ch指向的數(shù)組的內(nèi)容
 

我們再來看下面這段代碼,它的運行結(jié)果是什么?

package com.test;public class Example {    String str = new String("good");  char[] ch = { 'a', 'b', 'c' };  public static void main(String[] args) {    Example ex = new Example();    ex.change(ex.str, ex.ch);    System.out.println(ex.str);    System.out.println(ex.ch);  }  public void change(String str, char ch[]) {    str = str.toUpperCase();    ch = new char[]{ 'm', 'n' };  }  }

結(jié)果如下:

goodabc

有了前面的解釋,這個結(jié)果是不是在意料之中?!

以上這篇java中String類型變量的賦值問題介紹就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 上栗县| 肇源县| 黑水县| 平顺县| 滕州市| 青州市| 宁河县| 宣恩县| 海门市| 久治县| 马山县| 秀山| 宝丰县| 菏泽市| 老河口市| 民乐县| 河间市| 囊谦县| 扶绥县| 奈曼旗| 漠河县| 周至县| 宜春市| 伊吾县| 田林县| 康平县| 会泽县| 姚安县| 望谟县| 南阳市| 镇宁| 沽源县| 长汀县| 昭通市| 桐柏县| 夹江县| 西青区| 武鸣县| 神农架林区| 湖口县| 蓝田县|