ex)
String str = "Hello"; 
 | 
- String 인스턴스는 상수 형태 = 데이터 변경이 불가
    why?
    : 같은 문자열일 경우 공유가 되므로 어느 한 쪽이 마음대로 데이터를 변경한다면 문제가 발생하기 때문 
 -문자열이 동일할 경우 하나의 String 인스턴스만 생성 후 그것을 공유
    why?  
    : 인스턴스의 생성은 시스템에 부담을 줌, 문자열을 표현할 때 마다 인스턴스가 생성된다면 부담증가 
       생성횟수를 최소화 하기위해 같은 문자열은 공유
 ex)
String str1 = "Hello"; 
String str2 = "Hello"; 
 | 
* API 문서를 잘 참고하는게 중요!
* 유용한 메소드
1) 문자열 길이 반환(+ 공백포함)
    : public int length() 
ex)
String str = "Hello"; 
System.out.println(str.length()); //5출력 
 | 
2) 두 문자열 결합
    : public String concat(String str)
 ex)
String str1 = "Hello"; 
String str2 = "World!"; 
System.out.println(str1.concat(str2)); //HelloWorld! 출력 
 | 
3) 두 문자열 비교
    : public int compareTo(String str)
    * 반환 값에 따라 
          0 : 두 문자열은 동일
      음수 : 메소드를 호출한 String 인스턴스의 사전상 순서가 앞서있다
      양수 : 전달된 String 인스턴스의 사전상 순서가 앞서있다
 ex)
String str1 = "Hello"; 
String str2 = "World!"; 
System.out.println(str1.compareTo(str2)); //-15 출력 
 | 
* 문자열 복사
ex) 
String str1 = "Hello"; 
String str2 = "Hello"; 
String str3 = new String(str1); 
if(str1==str2) 
    System.out.println("같다"); 
else 
    System.out.println("다르다"); 
if(str1==str3) 
    System.out.println("같다"); 
else 
    System.out.println("다르다"); 
 | 
-> 세개의 String 인스턴스의 데이터 값이 모두 같으니 하나의 공간을 공유할 것 같지만 아님!
 - str1 의 데이터가 복사되어  별도의 String 인스턴스가 생성됨!
댓글 없음 :
댓글 쓰기