內(nèi)容摘要:本文通過(guò)寫(xiě)出代碼結(jié)果的方式向你解析了java面試中常面倒的幾個(gè)知識(shí)點(diǎn):string,equals(),==.
1.寫(xiě)出下面代碼的結(jié)果

public class TestString
{

public static void link(String a)
{
a += "World";
}


public static void main(String[] args)
{
String a = "Hello";
link(a);
System.out.println(a);
}
}

答: 這道題考兩個(gè)方面:
1). String對(duì)象的內(nèi)容是不能改變的,a+="World"并不是把a(bǔ)所指對(duì)象改變,
而是先生成一個(gè)臨時(shí)String對(duì)象,其值為a+"World",然后在把這個(gè)臨時(shí)
對(duì)象賦給a.
2). Java中函數(shù)參數(shù)傳遞方式為Call by value,link方法中會(huì)生產(chǎn)a的一個(gè)
拷貝,同樣指向a所指的對(duì)象,綜合以上兩點(diǎn),得出結(jié)果為 Hello
2.寫(xiě)出下面代碼的結(jié)果
System.out.println("ja"+"va" == "java");
答:"=="用來(lái)比較對(duì)象的引用,而equals()用來(lái)比較對(duì)象的內(nèi)容,但是如果是字符串常量,用"=="也可以比較內(nèi)容
是否相等,"ja"+"va"和"java"都是字符串常量,因此結(jié)果為true
同理,下面代碼結(jié)果也是true
final String str = "java";

System.out.println(str=="java")
