String클래스
- 자바에서 문자열은 쌍 따옴표 “ ” 로 감싸면 된다.
- 자바에서 문자열을 저장하는 기본 자료형(DataType)은 없다.
- 문자열은 여러가지 조작을 할 수 있기 때문에 별도의 클래스로 참조자료형( java.lang.String)을 만들어 두었다.
- 그래서 자바에서 문자열은 책, 영화, 회원 처럼 객체로 취급된다.
코드로 실습
public class TPC34 {
public static void main(String[] args) {
String str1 = new String("APPLE"); //Heap Area에 서로 다른번지의 APPLE객체가 2개 생성된다.
String str2 = new String("APPLE");
System.out.println("str1==str2: "+str1==str2); //두 번지의 주소가 다르다.
//String class에 있는 equals()는 Object class의 equals()메소드를 이미 오버라이딩하고 있다.
//아래의 코드에서 "문자열 비교가능"
if(str1.equals(str2)) {
System.out.println("두 문자열 객체가 동입합니다.");
}else {
System.out.println("두 문자열 객체가 다릅니다.");
}
String str3 = "컴퓨터"; //new라는 연산자가 없더라도 APPLE객체 1개가 메모리의 Literal Pool에 생성된다.
String str4 = "컴퓨터";
System.out.println(str3==str4); //동일한 번지의 객체변수(str3,str4)는 APPLE객체 1개를 가르킨다.
}
}
String class의 equals 메소드는 Oject class의 equals()메소드를 조상님께서 이미 오버라이딩 해놓고 있다.
String str1 = new String("SAMSUNG");
String str2 = neew String("APPLE");
str1.equals(str2); 하면 주소비교가 아닌
str1이 가리키는 객체와 st2이 가리키는 객체를 비교한다.
'자바 > Java TPC(생각하고, 표현하고, 코딩하고)' 카테고리의 다른 글
ArrayList (0) | 2022.10.27 |
---|---|
내가 만든 최초의 API - IntArray, ObjectArray (0) | 2022.10.27 |
Object 클래스는 신이야 (0) | 2022.10.27 |
추상클래스 vs 인터페이스 (0) | 2022.10.27 |
인터페이스(100% 다형성 보장) & final, static (0) | 2022.10.27 |