기본적으로 객체 비교시 == 연산자를 쓴게 잘못이다. --;;; ㅠ
그래도 덕분에 하나 배웠다.ㅋ
Integer i = 10; ==> Integer i = Integer.valueOf(10);
Converting a primitive value (an int, for example) into an object of the corresponding wrapper class (Integer) is called autoboxing.
http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
Integer객체 안에서 속도를 높이기 위해서 -128~127까지는 cache 된 데이터를 사용.
http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#valueOf%28int%29
https://blogs.oracle.com/darcy/entry/boxing_and_caches_integer_valueof
# Integer vs int 비교 테스트.
private static void compareInt() {
int pInt = 127;
Integer oInt = 127;
Integer cInt = new Integer(127);
Integer oInt2 = 127;
Integer cInt2 = new Integer(127);
System.out.println("====================== compare 127");
System.out.println("int vs Integer : " + (pInt == oInt));
System.out.println("int vs new Integer : " + (pInt == cInt));
System.out.println("Integer vs new Integer : " + (oInt == cInt));
System.out.println("Integer vs Integer : " + (oInt == oInt2));
System.out.println("new Integer vs new Integer : " + (cInt == cInt2));
pInt = 128;
oInt = 128;
cInt = new Integer(128);
oInt2 = 128;
cInt2 = new Integer(128);
System.out.println("\n====================== compare 128");
System.out.println("int vs Integer : " + (pInt == oInt));
System.out.println("int vs new Integer : " + (pInt == cInt));
System.out.println("Integer vs new Integer : " + (oInt == cInt));
System.out.println("Integer vs Integer : " + (oInt == oInt2));
System.out.println("new Integer vs new Integer : " + (cInt == cInt2));
}
결과..
====================== compare 127
int vs Integer : true
int vs new Integer : true
Integer vs new Integer : false
Integer vs Integer : true
new Integer vs new Integer : false
====================== compare 128
int vs Integer : true
int vs new Integer : true
Integer vs new Integer : false
Integer vs Integer : false
new Integer vs new Integer : false
'프로그래밍 > Java' 카테고리의 다른 글
buffer 사용법. (3) | 2015.05.20 |
---|---|
[LINK] zero copy (0) | 2014.11.27 |
[Spring] MappingJacksonHttpMessageConverter 를 이용한 object <-> json 테스트. (1) | 2014.04.07 |
[spring] request life cycle (0) | 2014.03.24 |
이클립스 단축키 (0) | 2014.03.24 |