728x90
Final 클래스는 상속받지 못한다
String은 final 클래스 이다. 왜?
string 객체를 new로 생성하지 않으면 상수처럼 메모리에 올라가 그것을 참조한다..(변하지 않는다)
new로 생성하면 항상 새로운 인스턴스가 메모리에 올라가서 그 것을 참조한다.
레퍼런스 타입에서 ==는 같은 것을 참조하느냐? 를 물어보는 것.
스트링은 레퍼런스타입.
따라서 new로 생성하면 인스턴스가 각각만들어지기 때문에 같은 문자라도 다른 인스턴스를 참조하게 된다.
그냥 "~~"로 생성하면 같은 상수(처럼) 를 참조한다.
따라서 new를 안쓰는 게 메모리를 아끼는 것.
단, equals 메소드를 쓰면 문자만 같으면 같다고 나온다. equals는 값이 같냐는 것을 묻기 때문에.
string객체에 어떤 메소드를 써도 객체 자체는 변하지 않는다. 불변 객체.
'프로그래밍 > java' 카테고리의 다른 글
14. 인터페이스 (0) | 2023.09.14 |
---|---|
13. 접근 제한자 (0) | 2023.09.06 |
11. java 템플릿 메소드 패턴 (0) | 2023.05.23 |
9. java 생성자 (0) | 2023.05.11 |
8. java 상속, 오버라이딩, getter&setter (0) | 2023.04.10 |
댓글