Equals_Ex2

Posted 2015. 4. 10. 15:54

package chap9;

class Value2{
 int value;
 Value2(int value){
  this.value = value;
 }
 
 // 객체의 내용을 비교해서 같으면 true
 // 다르면 false 리턴하는 메서드로 오버라이딩
 @Override
 public boolean equals( Object obj ){
  if( obj instanceof Value2 ){
   Value2 v = (Value2)obj;
   if( value == v.value ) return true;
   else return false;
  }
  else return false;
 }
}

public class Equalsx2 {
 public static void main(String[] args) {
  Value2 v1 = new Value2(10);
  Value2 v2 = new Value2(10);
  
  if( v1 == v2 ) System.out.println("v1객체와 v2객체는 같습니다.");
  else System.out.println("v1객체와 v2객체는 다릅니다.");

--> 객체를 비교하면 다르다가 출력
  
  if( v1.equals(v2) ) System.out.println("v1.equals(v2) : true");
  else System.out.println("v1.equals(v2) : false");

--> 객체들의 Obj를 비교하면 같다가 출력됨. 둘다 Value2를 사용했기때문
  
  System.out.println(v1.hashCode());
  System.out.println(System.identityHashCode(v1));
 }
}

'Java !!!' 카테고리의 다른 글

String  (0) 2015.04.10
HashCode  (0) 2015.04.10
Equals  (0) 2015.04.10
StringBuffer_Ex2  (0) 2015.04.10
StringBuffer  (0) 2015.04.10

Equals

Posted 2015. 4. 10. 15:54

package chap9;

// Equels 메서드 연습

class Value{
 int value;
 Value(int value){
  this.value = value;
 }
}

// Object 클래스의 equals 메서드는 객체비교방식 구현
// 객체비교는 == 연산자로도 가능
// equals 메서드는 내용비교하는 방식으로 오버라이딩 필요
// 대부분의 클래스는 equals 메서드를 내용비교 방식으로
// 오버라이딩해서 사용하고 있다. ( string )

public class Equalsx1 {
  
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Value v1 = new Value(10);
  Value v2 = new Value(10);
  
  if( v1 == v2 ) System.out.println("v1객체와 v2객체는 같습니다.");
  else System.out.println("v1객체와 v2객체는 다릅니다.");

--> 객체는 v1, v2를 말함. 다르다가 출력됨.
  
  if( v1.equals(v2) ) System.out.println("v1.equals(v2) : true");
  else System.out.println("v1.equals(v2) : false");

--> equals도 마찬가지로 객체를 비교함. 다르다가 출력됨
  
  
  v2 = v1;
  if( v1 == v2 ) System.out.println("v1객체와 v2객체는 같습니다.");
  else System.out.println("v1객체와 v2객체는 다릅니다.");

--> 참조자가 같아 지면서 같다가 출력됨  


  if( v1.equals(v2) ) System.out.println("v1.equals(v2) : true");
  else System.out.println("v1.equals(v2) : false");
 }
}

--> 마찬가지로 같다가 출력됨.

'Java !!!' 카테고리의 다른 글

HashCode  (0) 2015.04.10
Equals_Ex2  (0) 2015.04.10
StringBuffer_Ex2  (0) 2015.04.10
StringBuffer  (0) 2015.04.10
innerClass_Ex4  (0) 2015.04.10

StringBuffer_Ex2

Posted 2015. 4. 10. 15:53

package chap9;

// StringBuffer 예제
// jdk 5.0 이후에 StringBuilder 클래스를 새로 만듬
// StringBuffer와 StringBuilder는 메서드가 같다.

// StringBuffer : 모든 메서드가 스레드에 동기화 되어 있다.
// StringBuilder : 모든 메서드가 스레드에 동기화 되어 있지 않아.

public class StringBufferEx2 {
 public static void main(String[] args) {
  
  long startTime = 0;
  long endTime = 0;
  double dTime = 0d;
  
  long startTime2 = 0;
  long endTime2 = 0;
  double dTime2 = 0d;
  
  startTime = System.nanoTime();
   
  
  StringBuffer sb = new StringBuffer();
  sb.append("abc").append(123).append(true);
  System.out.println(sb); // abc123true
  sb.delete(1, 3);
  System.out.println(sb); // a123true
  sb.deleteCharAt(4);
  System.out.println(sb); // a123rue
  sb.insert(5, "@@");
  System.out.println(sb); // a123r@@ue
  sb.insert(6, 7.89);
  System.out.println(sb); // a123r@7.89@ue
  sb = new StringBuffer("ABCDEFG");
  sb.replace(0, 3, "abc");
  System.out.println(sb);
  sb.reverse();
  System.out.println(sb);

  endTime = System.nanoTime();
  dTime = (double)(endTime - startTime)/(double)1000000;
  
  System.out.println(dTime);
  
  startTime2 = System.nanoTime();
  String str = "abcdefghijklmn";
  String str2 = "1234567890";
  String str3 = str + str2;
  endTime2 = System.nanoTime();
  dTime2 = (double)endTime2 - startTime2 / 1000000;
  System.out.println(str3);
  System.out.println(dTime2);
 }
}

'Java !!!' 카테고리의 다른 글

Equals_Ex2  (0) 2015.04.10
Equals  (0) 2015.04.10
StringBuffer  (0) 2015.04.10
innerClass_Ex4  (0) 2015.04.10
innerClass_Ex3  (0) 2015.04.10
« PREV : 1 : ··· : 8 : 9 : 10 : 11 : 12 : 13 : 14 : ··· : 77 : NEXT »