본문 바로가기
Java & Spring

기본자료형과 객체자료형 차이점

by 모닝위즈 2021. 12. 30.
반응형

 

 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의 값이 변경되는 것이다.

 


댓글