JAVA/프로그래머스 자바 입문

파트5. 클래스와 객체 [String클래스 - 실습(1,2)]

RiLLa_0511 2023. 2. 28. 10:34
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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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는 같은 값을 가지고 있습니다."가 출력된다.