StringBuffer

Posted 2015. 4. 10. 15:53

package chap9;

// StringBuffer 클래스 예제
// 가변적인 문자열 객체임
// 기본적으로 16개의 버퍼를 내부에 가지고 있다.
// new StringBuffer(100) => 116개의 버퍼를 가진다.
// equals 메서드가 오버라이딩 되지 않았다.
// 내용비교는 toString() 메서드로 String 객체로 변경 후 equals 메서드를 사용 해야 한다.

public class StringBufferEx1 {
 public static void main(String[] args) {

  long startTime = 0;
  long endTime = 0;
  double dTime = 0;
  
  
  StringBuffer sb = new StringBuffer("abc");
  StringBuffer sb2 = new StringBuffer("abc");
  
  
  // 시작 시간
  startTime = System.nanoTime();
  
  
  if( sb == sb2 )
   System.out.println("sb == sb2");
  else
   System.out.println("sb != sb2");
  
  if( sb.equals(sb2) )
   System.out.println("sb.equals(sb2) : true");
  else
   System.out.println("sb.equals(sb2) : false");
  
  if( sb.toString().equals(sb2.toString()) )
   System.out.println("sb.toString().equals(sb2.toString()) : true");
  else
   System.out.println("sb.toString().equals(sb2.toString()) : false");
  
  System.out.println();
  
  //끝난 시간
  endTime = System.nanoTime();
  dTime = (double)(endTime - startTime) / 10000000;
  System.out.println(dTime);
 }
}

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

Equals  (0) 2015.04.10
StringBuffer_Ex2  (0) 2015.04.10
innerClass_Ex4  (0) 2015.04.10
innerClass_Ex3  (0) 2015.04.10
innerClass_Ex2  (0) 2015.04.10

innerClass_Ex4

Posted 2015. 4. 10. 15:52

package chap10;

class Outer{
 int iv = 10;
 int iv2 = 30;
 class InstanceInner{ // 인스턴스 내부클래스
  int iv = 100;
  void method1(){ // 인스턴스 내부클래스의 멤버 메서드
   System.out.println("iv =" + iv);
   System.out.println("this.iv=" + this.iv); // 100
   // 외부클래스 멤버 접근 방법
   System.out.println("Outer.iv=" + Outer.this.iv); // 10
   System.out.println("iv2=" + iv2); // 30
  }
 }
 
 static class StaticInner{
  int iv = 200;
  static int cv = 300;
 }
 
 void myMethod(){
  class LocalInner{
   int iv = 400;
  }
  LocalInner linner = new LocalInner(); // 반드시 객체 생성을 해야 사용 할 수 있다.
  System.out.println(linner.iv);
 }
}

public class InnerEx4 {
 public static void main(String[] args) {
  Outer oc = new Outer();
  
  // 내부클래스의 타입 : 외부클래스. 내부클래스
  Outer.InstanceInner ii = oc.new InstanceInner();
  System.out.println("ii.iv = " + ii.iv);  // 100
  
  // Static 내부클래스 클래스멤버 접근방법
  System.out.println("Outer.StaticInner.cv :" + Outer.StaticInner.cv); // 300
  
  // Static 내부클래스 인스턴스 멤버 => 객체화 필요
  Outer.StaticInner os = new Outer.StaticInner();
  System.out.println("os.iv = " + os.iv);
  oc.myMethod();
  
  // 인스턴스내부클래스의 메서드 호출
  Outer.InstanceInner ot = oc.new InstanceInner();
  ot.method1(); // 100
  
 }
}

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

StringBuffer_Ex2  (0) 2015.04.10
StringBuffer  (0) 2015.04.10
innerClass_Ex3  (0) 2015.04.10
innerClass_Ex2  (0) 2015.04.10
enum  (0) 2015.04.10

innerClass_Ex3

Posted 2015. 4. 10. 15:52

package chap10;

public class InnerEx3 {
 private int outeriv = 0;
 static int outercv = 0;
 class InstanceInner{
  int iiv = outeriv;
  int iiv2 = outercv;
 }
 
 static class StaticInner{
//  int siv = outeriv; // 에러!!
  // outeriv의 객체를 만들어서 사용 해야 한다.
  int siv = new InnerEx3().outeriv;
  static int scv = outercv;
 }
 
 void myMethod(){
  // 내부클래스에서 사용시에는 상수가 되어야 한다.
  int lv = 0;
  final int LV = 0;
  class LocalInner{
   int liv = outeriv;
   int liv2 = outercv;
   // 지역 내부 클래스에서 메서드의 지역변수를 호출하지 못했다.
   int liv3 = lv; // jdk 8.0 이후 가능.
       // lv 변경없으므로 내부적으로 상수로 처리됨.
   int liv4 = LV; // 상수는 접근 가능
  }
 }
 
 public static void main(String[] args) {

 }
}

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

StringBuffer  (0) 2015.04.10
innerClass_Ex4  (0) 2015.04.10
innerClass_Ex2  (0) 2015.04.10
enum  (0) 2015.04.10
Collection_EX  (0) 2015.04.10
« PREV : 1 : ··· : 9 : 10 : 11 : 12 : 13 : 14 : 15 : ··· : 77 : NEXT »