day08 배열 및 가비지 수집, 배열의 최대값 찾기

이 경우 어떻게 됩니까?

내부( ) = 새로운 내부(10);

= 새로운 내부(20);

=> 배열이 선언되어 이미 할당되어 있지만 새로운 크기의 배열이 변수 a에 저장됩니다.

이때 (10)배열의 운명은 어떻게 될지…

정답은

배열은 가비지 수집됨

이미 걷고 떠다니는 청소를 마쳤습니다!

(면접 질문으로 나올 수 있음)



지금 보면 10 어레이가 켜지지 않는 것을 볼 수 있습니다.

그리고 위의 루프를 기반으로 이것을 인쇄할 때

1
2
3
4
5
6
7
8
9
10
0
0
0
0
0
0
0
0
0
0

이렇게 나옵니다!
!

빠른 퀴즈

배열 + 무작위 결합 문제


해결 순서

1. 임의의 값 얻기

2. 최대값 찾기

3. 종료

package Day08;

import java.util.Random;

public class Q1 {

	public static void main(String() args) {
		// TODO Auto-generated method stub
		//1. 랜던값 받기
		//2. 최대값 찾기
		//3. 출력
		Random r = new Random();
		int() array = new int(10);
		int max = 0; // 일단 최댓값 초기화
		
		for(int i = 0;i<array.length;i++) {
			array(i) = r.nextInt(11); // 2  5  6  3  7  7  1  0   4    3 
			if(max < array(i)) {
				max = array(i);  // max = 2  5   6   7
			}
		}
        // 옆에 적어놓은 숫자가 무엇이냐면, 
        // 난수로 로 추출되어 배열에 들어간 숫자와 최댓값에 저장되어 있는 숫자를 시행마다 비교하여
        // 배열에 들어간 숫자가 크면, 이 숫자를 max에 업데이트 시켜주는 것.
        // 지금은 추출된 난수 중에서 7이 젤 큰 숫자니까, 모두 실행했을 때 7이 max에 남게 되겠지.
		
		for(int i = 0;i<array.length;i++) {
			System.out.println("index("+ i +") : " +array(i));
		}
		
		System.out.print("최대 값 : ");
		for(int i = 0;i<array.length;i++) {
			if(array(i) == max) {
				System.out.print("("+i + ") ");
			}
		}
	}
}