참, 자바란 것이 어렵다 ㅜㅜ 그거/Java2007. 10. 24. 11:13
class Test {
public static void swap(int x, int y) {
int temp;
temp = y;
y = x;
x = temp;
}
public static void swap(Number n) {
int temp;
temp = n.x;
n.x = n.y;
n.y = temp;
}
public static void objRef(Number n) {
n = null;
}
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a + ", " + b);
swap(a, b);
System.out.println(a + ", " + b);
String str1 = "1234";
String str2 = "1234";
Integer int3 = new Integer(1234);
String str4 = new String("1234");
System.out.println(str1 == str2);
System.out.println(str1.equals(int3));
System.out.println(str1 == str4);
System.out.println(str1.equals(str4));
Number n = new Number();
n.x = 10;
n.y = 20;
System.out.println(n.x + ", " + n.y);
swap(n);
System.out.println(n.x + ", " + n.y);
objRef(n);
System.out.println(n.x + ", " + n.y);
}
}
class Number {
int x;
int y;
}
위 결과가 어찌 될 것인가......
10, 20
true
false <--- equals(Object) method라서 "1234".equals(new Integer(1234)) 하면
new Integer(1234)가 toString() 되서 true가 될 줄 알았는데 false 다.
false
true
10, 20
20, 10
20, 10 <--- 분며이 objRef(Number n)에서 n = null; 을 했는데 왜 값이 찍히지?
NullPointerException 나야 되는거 아녀? -_-;
이렇단다.
아.. Java를 몇년을 해도 저게 헷갈리는 이유가 대체 무엇이란 말인가.
아.. 돌머리.. ㅡ,.ㅡ;
'그거 > Java' 카테고리의 다른 글
Java Heapsize 관련 참조 (0) | 2008.10.21 |
---|---|
eclipse TPTP update (0) | 2008.10.08 |
WebLogic 8.1 SP6 Download URL (0) | 2007.09.17 |
[JavaQuiz] 3n+1 (0) | 2007.09.12 |
[JavaQuiz] 셰익스피어-원숭이 문제 (0) | 2007.09.12 |