본문 바로가기
🤼‍♂️ 5. Project/5-2 연습문제 풀이

[혼자공부하는자바] 5장 참조타입

by 달님🌙 2021. 7. 30.
반응형

1절 참조 타입과 참조 변수

 

1. 참조 타입 OX문제

① O

*② O  -> 참조 변수의 메모리 생성 위치는 스택이 맞다.

③ O

④ X -> null 값으로 초기화할 수 있다, 객체를 참조하지 않는다는 의미로.

 

2. 메모리 사용 OX문제

① O

② O

*③ X -> 참조되지 않는 객체를 굳이 직접 소멸해줄 필요없음

*④ O -> 배열 및 객체는 힙 영역에 생성된다.

 

3. String 타입 OX문제

① O

② X

③ O

④ O

 

4. 참조 변수 OX문제

① O

② O

*③ O -> 참조 변수에 null 이 저장된 상태에서는 참조변수를 통해 객체를 사용할 수 없다.

만약 사용하게 되면 NullPointerException 이 발생한다.

*④ X -> NullPointerException는 초기화된 참조변수에서 일어난다.

 

5. 비교 연산식과 메소드의 실행결과

① true

② false

③ true (같은 주소값)

④ true (새로 만들었으므로 다른 주솟값이라서 true)

⑤ true (주소값은 달라도 문자열이 같으므로 true)

 

 

2절 배열

 

1. 배열을 생성하는 방법

① O

② X

③ O

④ O

 

2. 배열의 기본 초기값

① O

② O

③ X

④ O

 

3. 배열의 길이

array.length = 3

array[2].length = 5

 

4.

int max = 0;
int min = 10;
int[] array = {1,5,3,8,2};

for(int i=0; i<array.length; i++) {
if(array[i]>max) {
	max = array[i];
	}
} System.out.println("max: "+ max);

 

5.

int[][] arr = {
	{95,86},
	{83,92,96},
	{78,83,93,87,88}	
};

int sum = 0;
double avg = 0.0;
int num = 0;

for(int i=0; i<arr.length; i++) {
	System.out.println(arr[i].length);
	num += arr[i].length;
}
		
for(int i=0; i<arr.length; i++) {
	for(int j=0; j<arr[i].length; j++) {
		sum += arr[i][j];
		avg = (double)sum/ num;
	}
}	
System.out.println("sum: " + sum);
System.out.println("avg: " + avg);

 

6.

		boolean run = true;
		int studentNum = 0;
		int[] scores = null;
		Scanner scn = new Scanner(System.in);
		
		
		while(run) {
			System.out.println("-------------------------------------------");
			System.out.println("1.학생수 | 2.점수입력 3.점수리스트 | 4.분석 | 5.종료");
			System.out.println("-------------------------------------------");
			System.out.print("선택> ");
			
			int selectNo = Integer.parseInt(scn.nextLine());
			
			if(selectNo == 1) {
				System.out.print("학생수> ");
				studentNum = Integer.parseInt(scn.nextLine());
				scores = new int[3];
			} else if(selectNo == 2) {
				for(int i=0; i<scores.length; i++) {
					System.out.printf("scores[%d]> ",i);
					scores[i] = Integer.parseInt(scn.nextLine());
				}
					
			} else if(selectNo == 3) {
				for(int i=0; i<scores.length; i++) {
					System.out.printf("scores[%d]> %d \n",i,scores[i]);
				}
			} else if(selectNo == 4) {
				int maxScore = 0;
				int sum1 = 0;
				for(int i=0; i<scores.length; i++) {
						if(scores[i]>maxScore) {
							maxScore = scores[i];
					}	sum1 += scores[i];
				}
				double avr = (double)sum1 / scores.length;
				System.out.printf("최고점수: %d \n",maxScore);
				System.out.println("평균점수: " + avr);
				
			} else if(selectNo == 5) {
				run = false;
			}		
		}
		System.out.println("프로그램 종료");
		
	}
	
}

 

3절 열거 타입

 

1. 열거 타입 OX 문제

① O

② O

*③ X -> 열거 타입 변수에 null 대입 가능하다.

④ O

 

2. public enum LoginResult = {SUCCESS, FAIL_ID, FAIL_PASSWORD};

 

반응형

댓글