반응형
List<VO> voList = getList();
for(VO vo : voList){
VO setvo = vo;
System.out.println("flag ==> "+vo.getFlag()); // flag ==> C
setvo.setFlag('U');
System.out.println("flag ==> "+vo.getFlag());
}
위 내용에서 voList속에 해당 1번째 vo의 flag의 값이 C라고 할 때,
새로운 VO인 setvo에 해당 vo를 넣어주고 setvo의 flag의 값을 U로 변경하면,
vo의 flag의 값이 바뀔까? 안바뀔까?
자세한 내용은 아래에서 비롯됨.
자료형은 기본자료형과 객체자료형으로 볼 수 있다.
기본자료형은 int, float, double, char, boolean 등으로 볼 수 있고,
객체자료형은 String, Intger, Double, List, ArrayList 등 기본자료형이 아닌 모든 것으로 볼 수 있다.
여기서 차이점은 아래와 같다.
1. 기본자료형은 소문자로 시작되고, 객체자료형은 대문자로 시작된다.
2. 기본자료형은 null을 가질 수 없으며, 객체자료형은 null을 가질 수 있다.
3. 메모리에 저장되는 방식
위 내용은 3번에 해당 하는 부분이다.
기본자료형에서는 a에 속한 메모리 공간에 수정한 데이터가 직접 위치하게 되는 방식이고,
객체자료형에서는 setvo의 값이 vo로 설정할 경우 그 메모리 공간의 주소라 링크되기 때문에,
setvo의 값을 변경할 경우 vo의 값이 변경되는 것이다.
'Java & Spring' 카테고리의 다른 글
List의 값을 가져와서 다른 List에 담을 때, for-loop, iterator, Stream foreach, ParallelStream에 대하여.. (0) | 2022.01.13 |
---|---|
log4j 취약점 조치 (CVE-2021-44228) (CVE-2021-4504) (0) | 2021.12.30 |
NoClassDefFoundError: kotlin/reflect/full/KClasses 에러 발생 시 (0) | 2021.12.30 |
kotiln 에러 Kotlin: Cannot access 'Attribute' it is private in 'VO' (0) | 2021.12.30 |
java spring framework + kotlin 설정 (0) | 2021.12.30 |
댓글