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 인스턴스가 생성됨!
댓글 없음 :
댓글 쓰기