반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Tags
more
Archives
Today
Total
관리 메뉴

디케이

String클래스 && substring 본문

Java

String클래스 && substring

디케이형 2020. 10. 15. 16:34
반응형

String 클래스

문자열을 표현하는 자바에서 가장 많이 사용하는 클래스
자바 인스턴스 생성 방법
new연산자를 이용하지 않고 인스턴스를 만드는 경우
String str1 = "hello";
String str2 = "hello";
hello라는 문자열이 메모리 중에서 상수가 저장되는 영역에 저장된다. 상수는 변하지 않는 값을 의미.
String str2 = hello; 이 문장이 실행될 때에 hello 라는 문자열 상수는 이미 만들어져 있으므로 str1이 참조하는 인스턴스를 str2도 참조한다.
2.new연산자를 이용해서 인스턴스를 만드는 경우

String str3 = new String("hello");
String str4 = new String("hello");

new연산자를 이용하여 인스턴스를 만들면 인스턴스는 무조건 새롭게 만들어진다.
String str4 = new String(hello); 이 문장이 실행될때도 새롭게 만들게 되므로, str3 과 str4는 서로 다른 인스턴스를 참조한다.
if(str1 == str2){ // 같은 인스턴스를 참조하므로 결과는 true
System.out.println("str1과 str2는 같은 레퍼런스입니다.");
}

if(str1 == str3){  // str1과 str3은 서로 다른 인스턴스를 참조하므로 결과는 false 
    System.out.println("str1과 str3는 같은 레퍼런스입니다.");
}

if(str3 == str4){  // str3과 str4는 서로 다른 인스턴스를 참조하므로 결과는 false 
    System.out.println("str3과 str4는 같은 레퍼런스입니다.");
}

참조변수끼리 == 로 비교하면 서로 같은 것을 참조하는지 비교한다.
String은 다른 클래스와 다르게 new를 사용하지 않고 사용할 수 있다. 메모리를 아끼려면 String은 new를 사용하지 않고 사용하는 것이 좋다.
String은 불변 클래스이다. 불변이란 String이 인스턴스가 될때 가지고 있던 값을 나중에 수정할 수 없다.
String은 문자열과 관련된 다양한 메소드를 가지고 있다. 메소드를 호출한다 하더라도 String은 내부의 값이 변하지 않는다.
String이 가지고 있는 메소드중 String을 반환하는 메소드는 모두 새로운 String을 생성해서 반환한다.
String str5 = "hello world";
String str6 = str5.substring(3);
substring은 문자열을 자른 결과를 반환하는 메소드이다. 해당 코드가 실행되어도 str5는 변하지 않는다.
str6은 str5가 가지고 있는 문자열 중 3번째 위치부터 자른 결과 즉 새로운 String을 참조하게 된다.

반응형

'Java' 카테고리의 다른 글

메소드(Method) 선언  (0) 2020.10.15
메소드(method), 인자(Argument), 매개변수(Parammeter)  (0) 2020.10.15
클래스 선언  (0) 2020.10.15
for each  (0) 2020.10.15
2차원 배열  (0) 2020.10.15