JAVA-Array (기본형 배열)

2023. 1. 20. 15:44코딩일기/JAVA

자바에서 배열 객체를 생성하는 문법을 알아보자!

 

int[ ] aaa = new int[3];

왜 이런 모양일까? 

자바는 int[ ] 객체안에 배열을 멤버로 갖고 있기 때문이다!

위와 같이 선언했을때,

C언어에서는 쓰레기 값을 갖지만 자바에서는 자동으로 0으로(0에 해당하는_double이라면 0.0_) 초기화 된다!

 

만약, print(aaa) - 를 했다고 해보자. 어떠한 값이 나올까? 바로 주소값이 나온다.

C언어라면 주소값을 보여줬겠지만,

자바에서는 System.out.println( aaa.toString() ) 인 것처럼 자동 .toString() 이 추가된다. 결과는 해쉬코드가 나온다

 

int aaa[ ] = new int[3];

이렇게 선언도 가능하기는 하다. 그렇지만 aaa가 배열이라고 오해하기 쉽다! aaa는 참조 변수!!!이다!!!!

 

int[ ] aaa = //까지만 썼다고 가정하자. 

나는 배열객체! 생성하지 않았고 참조변수선언한 것이다.


배열이라면 자동으로 갖고 있는 멤버변수인 length

aaa.length 는 참조변수 aaa가 가리키는 int[ ] 객체 안의 배열의 길이를 갖고있다.

		// int형 3개짜리 배열객체를 생성
		int[] aaa = new int[3]; // 배열의 요소들은 자동 0에 해당하는 값으로 초기화

		// 배열요소에 값 대입
		aaa[0] = 10;
		aaa[1] = 20;
		aaa[2] = 30;

		// 반복문을 이용하여 배열 요소값 출력
		for (int i = 0; i < aaa.length; i++) {
			System.out.println(aaa[i]);
		}

		double[] ggg = new double[] {3.14, 2.48, 7.23};
		double[] hhh = ggg; //객체대입X 주소값 복사ㅇ - 하나의 객체를 공유하게 됨
		for (int i = 0; i < ggg.length; i++) {
			System.out.print(ggg[i] + ", ");
		}
		System.out.println();
		
		hhh[0] = 1.1;
		for (int i = 0; i < ggg.length; i++) {
			System.out.print(ggg[i] + ", ");
		}

// 배열객체를 copy 해보기 [배열 요소값들을 복사하기]
int[] mmm = new int[] {50, 60, 70};
int[] nnn = new int[mmm.length]; // mmm배열과 같은 개수의 값이 0인 배열객체 생성
for (int i = 0; i < nnn.length; i++) {
    nnn[i] = mmm[i];
}
///mmm과 nnn이 참조하는 배열객체는 서로 다른 객체임!

 

반응형

'코딩일기 > JAVA' 카테고리의 다른 글

JAVA-Array 연습 문제 풀기  (0) 2023.01.25
JAVA-Array (참조형 배열)  (0) 2023.01.20
JAVA-연습문제_20230119  (0) 2023.01.19
JAVA-String  (0) 2023.01.19
JAVA-숫자야구 게임  (0) 2023.01.18