티스토리 뷰
반응형
1. 목적
원본 객체의 필드값과 동일한 값을 가지는 새로운 객체를 생성하는 것이 목적
객체 복제의 목적은 원본 객체를 안전하게 보호하기 위해서 이다.
2. 얕은 복제
단순히 필드값을 복사해서 객체를 복제하는 것을 의미한다. 필드값만 복제하기 때문에 필드가 기본 타입일 경우 값 복 사가 일어나고, 필드가 참조타입일 경우에는 객체의 번지가 복사된다.
메소드 객체 복사를 위해서는 java.lang.Cloneable 인터페이스를 구현하고 있어야한다.
반대로 인터페이스를 구현하지 않는다면 예외 처리를 반드시 설정해주어야 한다.
try{
Object obj = clone();
} catch(CloneNotSupportedException e){}
3. 깊은 복제
얕은 복제의 단점을 보완해주기 위해 사용된다. 즉, 참조객체까지도 보두 복제가 가능하다.
얕은 복제의 단점
> 참조타입 필드는 번지만 복사
> 참조객체를 변경할 경우 원본객체또한 변경된 객체를 가지게 됨
복제 후 참조객체의 데이터를 변경해도 원본 객체의 데이터는 변경되지 않는다.
반응형
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] String[] args 의 의미 (0) | 2021.04.25 |
---|---|
[JAVA] Class 클래스 / 리플렉션 (0) | 2021.03.24 |
[JAVA] 오버로딩(Overloading) VS 오버라이딩(Overriding) (0) | 2021.02.24 |
[JAVA] OOP 객체 지향 프로그래밍 (0) | 2021.02.23 |
[JAVA] Thread 스레드 개념 (0) | 2021.02.22 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ajax
- springboot
- java
- 디자인패턴
- 백준
- kakao
- 자격증
- security
- CS
- 스프링
- C언어
- 수학
- docker
- Matlab
- 프로그래머스
- Solid
- JPA
- 릿코드
- 면접
- Spring
- nginx
- 스프링부트
- 매트랩
- OOP
- interview
- spring-cloud
- Algorithm
- 알고리즘
- 자바
- 그래프
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함