목록참조변수 (2)
개발 무지렁이

String은 상수이다. 한 번 만들어지면 값변경이 불가, immutable String str = "java"; str = "java2"; ❓ 위의 코드는 정상적으로 실행된다. WHY? 값변경을 하는게 아니라 새로운 객체가 만들어진다. 수정 전의 객체는 garbage collection이 일어난다. String str = new String("java"); String str = "java"; 는 축약표현이다. 사실은 '객체생성연산자(new)'를 통해 객체를 생성하는 것이다. ❗ 주의 new 키워드 없이 할당한 값이 이미 있으면 같은 주소를 저장한다. String str1 = "java"; String str2 = new String("java"); String str3 = "java"; str1 ==..

값변경에 잘쓰이지 않는 String public class StringTest { public static void main(String[] args) { String str = "안녕하세요"; System.out.println(str); // 안녕하세요 str = "Hello"; System.out.println(str); // Hello } } ❓ 수정이 잘되는데 왜 String은 값변경에 쓰이지 않을까? : String은 객체이다, 원래는 String str = new String("안녕하세요");의 축약형이 위 코드이다. 이 코드가 실행되면 String 객체가 만들어지고, str="Hello";로 바꿨을 때 이 객체에 있는 값이 바뀌는 것이 아니라, 새로운 객체가 만들어지고 str변수가 참조하는 ..