이 경우 어떻게 됩니까?
내부( ) ㅏ = 새로운 내부(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 + ") ");
}
}
}
}