불변객체1 12. final 클래스, 불변객체 String Final 클래스는 상속받지 못한다 String은 final 클래스 이다. 왜? string 객체를 new로 생성하지 않으면 상수처럼 메모리에 올라가 그것을 참조한다..(변하지 않는다) new로 생성하면 항상 새로운 인스턴스가 메모리에 올라가서 그 것을 참조한다. 레퍼런스 타입에서 ==는 같은 것을 참조하느냐? 를 물어보는 것. 스트링은 레퍼런스타입. 따라서 new로 생성하면 인스턴스가 각각만들어지기 때문에 같은 문자라도 다른 인스턴스를 참조하게 된다. 그냥 "~~"로 생성하면 같은 상수(처럼) 를 참조한다. 따라서 new를 안쓰는 게 메모리를 아끼는 것. 단, equals 메소드를 쓰면 문자만 같으면 같다고 나온다. equals는 값이 같냐는 것을 묻기 때문에. string객체에 어떤 메소드를 써도 객.. 2023. 9. 6. 이전 1 다음