만약에 Integer c[][] = new Integer[n][n];
인티저 배열이 있어
Integer a = 10;
c[i][j] = a 라고 저장했다 처봐
여기서 a = 100 으로 바꾸면
c[i][j]도 100으로 나와야되는거 아님????
만약에 Integer c[][] = new Integer[n][n];
인티저 배열이 있어
Integer a = 10;
c[i][j] = a 라고 저장했다 처봐
여기서 a = 100 으로 바꾸면
c[i][j]도 100으로 나와야되는거 아님????
왜? 주소값을 저장하고 있어야되는거 아님?
new 로 바꿔보셈
a = new Integer(100); 이런식으로 해보라고?
자바는 잘모르지만 복사되나봄? - dc App
해당 댓글은 삭제되었습니다.
먼솔 클래스로 객체만들어서 하면 바뀜
아 음 Integer 내부 뜯어봐야되나 그니까 네 말은 인티져도 스트링처럼 원본 불변 머 이런 소리임?
118이랑 나랑 같아 폰이랑 컴 인티져도 객체라 하길래 클래스화 한거랑 똑같은 결과 나올줄 알았지 근데 인티저는 왜 안되는거야? 객체라 하더만 좀 다른가?
그러면 저 상태에서는 참조된값 바꿀방법 없는거야?
니가 값 넣는 순간 주소 새로 할당한다고 써있음 그러니깐 처음에는 a 보고있다가 딴거 값들어오면 새로 할당해서 바뀌는거
그니까 c[i][j]가 a의 주소값을 저장하고 있는데 a = 100 하는순간 a의 주소값이 바뀌어서 c[i][j]가 참조하고있는 주소랑 a의 주소가 달라진다 이말이제?
a의 주소값이 아니구 배열이 가리키고있는게 바뀌지.. 그거 실험하고 싶으면 주소값 찍어보셈
아 오키 대충 이해함 a자체 주소가 있는게 아니라 처음에 저장한 10의 주소값을 가리키는건가보네 난또 Integer a 하면 a만의 주소가 새로 생성되서 c[i][j]에 a의 주소가 저장되는줄