java 시작한지 얼마안되서 하는거마다 질문투성이네요..
궁금한게 생길때마다 사이트 찾아보고 책찾아보고 막무가내로 소스짜서 컴파일하고...
해결해 가고 있는데... 한놈이 무진장 끈질기게 버티네요...
그럼... 본론으로 들어가서
public class Array {
int[] a = { 1, 2, 3, 4 } -------------> 질문 1
public static void main(String[] args) {
Array one = new Array();
int[] b = one.a;
System.out.println( a==b );
System.out.println( a.equals(b) );
}
}
이게 머냐하면 배열로 선언한 a 라는 놈과 객체를 만들어서 나온 배열을 저장시킨 b라는 놈....
이 두놈의 참조변수랑 실제값을 비교해 보고 싶어서 만들었습니다...
그런데 안되네요... ( 예상한 바로는 true 나 false 값이 나올줄 알았는데 ㅡ.ㅡ; 쩝... )
질문 1. 위 소스 질문 1 부분에서 배열도 객체라고 공부했는데 그럼 배열변수 a도
heap area에 저장된 { 1,2,3,4 }를 참조하는 레퍼런스 주소값 인가요???
질문 2. int a = { 1, 2, 3, 4 } ==========================> 1번
int[] a;
a = new int[4];
a[0] = 1; ==========================> 2번
a[1] = 2;
a[2] = 3;
a[3] = 4;
위에서 1번과 2번의 차이점은 먼가요?
질문 3. 제일 위에 소스에서 부울값 출력을 예상했는데 왜 안되나요???
이상 허접한 것들 읽어 주셔서 고맙습니다...
이왕이면 답변 몇자 적어주시는 수고스러움도 부탁드립니다.... 꾸벅 (_._)
1번은 a가 레퍼런스 주소값 맞고 2번은 차이점 없고 3번은 a 가 static 이 아닌데 static인 main메서드에서 접근하려고하니 컴파일에러 뿜겟지. a도 static 이면 참트루를 뱉어낸다