Java에는 불변의 타입이 있습니다. 그리고 메소드에 불변 객체를 전달하면, 그 메소드에서 값이 변경 되더라도 해당 메소드를 호출 한 후에 변경되지 않습니다. 나는 모든 프리미티브가 불변이라는 것을 안다. String
도 변경할 수 없습니다.
자바에서 해당 기능을 확인하기위한 간단한 코드를 작성했으며 프리미티브의 래퍼 클래스도 변경할 수없는 것으로 보입니다. 아무도 자바에서 모든 불변 타입을 나열 할 수 있습니까?Java의 모든 불변의 타입
1
A
답변
4
몇 가지 새로운 것들을 소개 확신
은 변경할 수 없습니다.
void change(SomeType st) {
st.setValue(123);
}
실물이 변경됩니다. 동안
void change(SomeType st) {
st = new SomeType(123);
}
하지 않습니다. 차이점은 참조를 변경하거나 참조 된 오브젝트에서 조작 중인지 여부입니다.
문자열과 해당 래퍼 클래스는 해당 개체를 변경할 수있는 setValue
과 같은 멤버 함수가 전혀 없으므로 불변이라고합니다.
당신이 이것을 이해하기를 바랍니다. 의심스러운 점이 있으면 자유롭게 의견을 말하고 질문 할 수 있습니다.
+0
감사합니다. – shift66
-1
jdk에서 제공되는 모든 프리미티브 값을 보유하는 클래스는이 목록을 통과해야합니다.
예 - 정수, Long, Double, String 등입니다.
1
아니요, 불가능합니다.
모든 사람은 자신의 불변의 유형을 추가 할 수 있습니다 그리고 난 자바의 각기 다른 버전은 그것이 값이 그 방법으로 변경된 것 경우에도 그 메소드 호출 한 후 변경되지 않습니다
관련 문제
- 1. 함수 호출에서 파이썬 불변의 타입
- 2. Java의 모든 기본 유형?
- 3. 불변의 객체는
- 4. 불변의 컬렉션입니까?
- 5. 불변의 콜렉션 구현
- 6. 불변의 NSStrings 공유하기
- 7. 매핑 불변의 속성 여기
- 8. Java의 모든 색상 조작 라이브러리?
- 9. Java의 모든 프로그램에 클래스가 필요합니까?
- 10. 스파 스, 게으른 불변의 불변의 배열을위한 스레드 안전 캐시
- 11. .NET 불변의 객체
- 12. 불변의 닷 넷 문자열
- 13. 파이썬 불변의 유형을 변경
- 14. 불변의 사전 오버 헤드?
- 15. 불변의 사전을 파이썬으로 해싱
- 16. Doctrine 2의 불변의 콜렉션?
- 17. 불변의 클래스는 메모리를 저장합니까?
- 18. 파이썬에는 불변의 목록이 있습니까?
- 19. 불변의 방법은 객체
- 20. 객관적인 불변의 배열
- 21. 불변의 문자열 클래스입니까?
- 22. 불변의 참조 란 무엇입니까?
- 23. 문자열 불변의 문제 문제
- 24. 불변의 Seq에 아이템 추가하기
- 25. 불변의 크롬 sqlite 반환 객체
- 26. 공변 타입 T는 내가 스칼라에서 첫 단계를 이동 그리고 난 다음 코드가 작동하는지 확인하고자하는 불변의 위치
- 27. 업데이트 불변의 데이터 구조는 상속
- 28. 불변의 문자열 대 std :: 문자열
- 29. 불변의 컬렉션 액션 스크립트 3
- 30. 프로토 타입 : 특정 클래스의 모든 요소를 찾으시겠습니까?
프리미티브는 변경할 수 없습니다. "메소드에 전달한 후에 변경하지 않는다"는 사실은 값으로 전달 되었기 때문이며, 변경 가능하지 않기 때문이 아닙니다. – amit
비슷한 질문 : http://stackoverflow.com/questions/5124012/examples-of-immutable-classes – Azodious
이 목록을 알 수있는 이유는 무엇입니까? – Dapeng