728x90
[ Programmers - 무료 자바 입문 강의 ]
https://school.programmers.co.kr/learn/courses/5/lessons/139
● String 클래스
→ new 연산자를 이용하지 않고 인스턴스를 만들 수 있다.
→ new 연산자 없이 인스턴스를 만들면 인스턴스가 상수 영역에 만들어진다.
→ new 연산자를 이용하여 인스턴스를 만들면 상수 영역에 만들어지지 않고 새로 만들어진다.
→ 한 번 생성된 클래스는 변하지 않는다.
String str1 = "Hi"; // new 연산자를 이용하지 않고 클래스 선언
String str2 = new String("Hi"); // new 연산자를 이용하여 클래스 선언
https://school.programmers.co.kr/learn/courses/5/lessons/364
public class StringExam {
public static void main(String[] args) {
String str1 = new String("Hello world");
String str2 = new String("Hello world");
if(str1 == str2){
System.out.println("str1과 str2는 같은 인스턴스를 참조합니다.");
}
else{
System.out.println("str1과 str2는 다른 인스턴스를 참조합니다.");
}
}
}
☞ new 연산자를 사용하여 클래스를 선언하였기 때문에 str1과 str2는 서로 다른 'Hello world'를 참조한다.
☞ 따라서 "str1과 str2는 다른 인스턴스를 참조합니다." 가 출력된다.
https://school.programmers.co.kr/learn/courses/5/lessons/902
public class StringExam {
public static void main(String[] args) {
String str1 = new String("Hello world");
String str2 = new String("Hello world");
if( str1.equals(str2) ){
System.out.println("str1과 str2는 같은 값을 가지고 있습니다.");
}
else{
System.out.println("str1과 str2는 다른 값을 가지고 있습니다.");
}
}
}
☞ new 연산자를 사용하여 만든 두 인스턴스의 문자열이 같은 값이므로 "str1과 str2는 같은 값을 가지고 있습니다."가 출력된다.
'JAVA > 프로그래머스 자바 입문' 카테고리의 다른 글
파트5. 클래스와 객체 [메소드(Method) 선언 - 실습] (0) | 2023.02.28 |
---|---|
파트5. 클래스와 객체 [필드(field)선언 - 실습] (0) | 2023.02.28 |
파트5. 클래스와 객체 [참조타입] (0) | 2023.02.28 |
파트5. 클래스와 객체 [클래스 선언 - 실습] (0) | 2023.02.28 |
파트4. 배열 [for each - 실습] (0) | 2023.02.27 |