달력

3

« 2024/3 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'equals'에 해당되는 글 2

  1. 2011.05.02 String.intern() 메소드
  2. 2007.10.24 참, 자바란 것이 어렵다 ㅜㅜ 1
2011. 5. 2. 19:41

String.intern() 메소드 그거/Java2011. 5. 2. 19:41


String.intern( ) returns the String object that is being stored in the internal VM string pool. If two Strings are equal, then their

intern( ) results are identical; for example, if s1.equals(s2) is true, then s1.intern( ) == s2.intern( ) is

also true.

 
String.intern() 메소드는 VM 내부의 String pool 에서의 String 객체를 반환한다.
두 String 객체의 내용이 같다면 intern() 메소도가 반환하는 값도 같다.

즉,
s1.equals(s2) == true 는 s1.intern() == s2.intern()
이다.
 

'그거 > Java' 카테고리의 다른 글

MSSQL의 JDBC 로의 컬럼 타입 매핑  (0) 2011.08.08
String.sprlit() 의 사용..  (0) 2011.07.12
Use of String in Java  (0) 2011.05.02
Profiling by using NetBeans.  (0) 2011.04.28
Java method의 크기 제한 - 64K  (0) 2011.03.25
:
Posted by 뽀기
2007. 10. 24. 11:13

참, 자바란 것이 어렵다 ㅜㅜ 그거/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
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
:
Posted by 뽀기