問題:java 同一個對象new兩次是同一個位址嗎?
public class NewTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Flower a = new Flower();
System.out.println(a.hashCode());
a = new Flower();
System.out.println(a.hashCode());
}
}
運作結果:
1901116749
1807500377
因為,new一次就在堆中建立一個對象,hashCode就會不同。而a隻是對new出的對象的引用,是以位址不同。
但是建立的對象為String類型,即為相同
public class NewTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String a = new String("a");
System.out.println(a.hashCode());
a = new String("a");
System.out.println(a.hashCode());
}
}
運作結果:
97
97