牛客的一道題
public
class
sendvalue
public
static
void
main
(string[
] args)
}
答案是 6。
簡單解釋就是 string 類是 final 類,不可變。賦給乙個 string 變數新值其實就是將其指向乙個新建立的 string 物件,原物件被拋棄
接下來從 jvm 記憶體來分析這到題目
方法的呼叫對應虛擬機器棧的入棧出棧,程式從 main 方法開始執行
執行 sendvalue sv=new sendvalue(); 建立物件
左邊是棧右邊是堆
執行 sv.change(sv.str);
此時並沒有執行 change 裡面的 str=「10」;
執行 str=「10」; 後
所以回到main方法執行system.out.println(sv.str);結果還是6
至於 6 和 10 這兩 string 物件存放在哪,我覺得是在堆中的字串常量池(jdk8)
String的一道面試題
package com.liang.day08.demo01 字串的特點 1.字串內容用不可變 2.字串不可變,所以是可以共享的 3.字串效果上相當於char字元陣列,底層原理是byte位元組陣列 public class demo01string string str3 newstring cha...
一道this的題目
請問下面 中的this值指向的是全域性物件還是物件o?function f return c var o new f console.log o.constructor.name object這裡的this指向全域性物件,因為 c call without new。這裡用正常的方式呼叫的函式 c 所...
C 的引數傳遞,一道面試題
1.定義乙個類mpigeon,呼叫乙個swap互動函式,問最後實參的結果是什麼 類定義 public class mpigeon 交換函式 public void swap object a,object b 測試 private void button2 click object sender,e...