UniCode
[이것이 자바다]CH05.참조타입(확인문제풀이) 본문
1. 참조 타입에 대한 설명으로 틀린 것은 무엇입니까?
① 참조 타입에는 배열, 열거, 클래스, 인터페이스가 있다.
② 참조 타입 변수의 메모리 생성 위치는 스택이다.
③ 참조 타입에서 ==, != 연산자는 객체 번지를 비교한다.
④ 참조 타입은 null 값으로 초기화 할 수 없다.
☞ ④ 참조 타입은 null값으로 초기화 할 수 있다. / null값 -> 힙 영역의 객체를 참조하지 않는다는 뜻
2. 자바에서 메모리 사용에 대한 설명으로 틀린 것은 무엇입니까?
① 로컬 변수는 스택 영역에 생성되며 실행 블록이 끝나면 소멸된다.
② 메소드 코드나, 상수, 열거 상수는 정적(메소드) 영역에 생성된다.
③ 참조되지 않는 객체는 프로그램에서 직접 소멸 코드를 작성하는 것이 좋다.
④ 배열 및 객체는 힙 영역에 생성된다.
☞ ③ 참조되지 않는 객체 => JVM은 참조되지 않은 객체를 쓰레기 객체로 취급하고 쓰레기 수집기(Garbage Collector)를 구동시켜 메모리에서 자동 제거한다.
3. String 타입에 대한 설명으로 틀린 것은 무엇입니까?
① String은 클래스이므로 참조 타입이다.
② String 타입의 문자열 비교는 == 를 사용해야 한다.
③ 동일한 문자열 리터럴을 저장하는 변수는 동일한 String 객체를 참조한다.
④ new String("문자열")은 문자열이 동일하더라도 다른 String 객체를 생성한다.
☞ ② String 타입의 문자열 비교는 equal()메소드를 사용해야한다. 비교 연산자(==, !=)는 참조 주소의 값을 비교한다.
4. 배열을 생성하는 방법으로 틀린 것은 무엇입니까?
① int[] array = {1 , 2 , 3};
② int[] array; array = {1 , 2 , 3}
③ int[] array = new int[3];
④ int[][] array = new int[3][2];
☞ ② int[] array; array = {1 , 2 , 3} ( X ) // 이미 선언된 배열 변수는 객체 생성 연산자(new) 를 사용하여 값을 저장할 수 있다.
int[] array;
array = new int[] {1 , 2 , 3};
5. 배열의 기본 초기값에 대한 설명으로 틀린 것은 무엇입니까?
① 정수 타입 배열 항목의 기본 초기값은 0이다.
② 실수 타입 배열 항목의 기본 초기값은 0.0f 또는 0.0이다.
③ boolean 타입 배열 항목의 기본 초기값은 true이다.
④ 참조 타입 배열 항목의 기본 초기값은 null이다.
☞ ③ boolean 타입 배열 항목의 기본 초기값은 false이다.
6. 배열의 길이에 대한 문제입니다. array.length의 값과 array[2].length의 값은 무엇입니까?
int[ ][ ] array = { { 95, 86 }, { 83, 92, 96 }, { 78, 83, 93, 87, 88 }, } |
☞ array.length = 3 //array의 행의 개수
array[2].length = 5 // array의 세번째 열의 개수
7. 주어진 배열의 항목에서 최대값을 구해보세요. (for문을 이용하세요.)
[Exercise07.java] |
public class Exercise07 { public static void main(String[] args){ int max = 0; int[ ] array = { 1, 5, 3, 8, 2 }; //작성 위치 System.out.println( "max : " + max ); } } |
☞ for(int i = 0 ; i<array.length ; i++){
if(max < array[i]){
max = array[i];
}
}
8. 주어진 배열의 전체 항목의 합과 평균값을 구해보세요. (중첩 for문을 이용하세요.)
[Exercise08.java] |
public class Exercise08 { public static void main(String[] args){ int[ ][ ] array = { { 95 , 86 }, { 83 , 92 , 96 }, { 78 , 83 , 93 , 87 , 88 }, }; int sum = 0 double avg = 0.0; //작성 위치 System.out.println( "sum : " + sum ); System.out.println( "avg : " + avg ); } } |
☞
int cnt = 0;
for(int i = 0; i < array.length ; i++){
for(int j = 0; j< array[i].length ; j++){
sum += array[i][j];
count++; // array 배열의 데이터 총 갯수를 구하는 변수
}
}
avg = (double) sum/count;
9. 다음은 키보드로부터 학생 수와 각 학생들의 점수를 입력받아서, 최고 점수 및 평균 점수를 구하는 프로그램입니다. 실행 결과를 보고, 알맞게 작성해보세요(참고로 16라인에서 Scanner의 nextInt( ) 메소드는 콘솔에 입력된 숫자를 읽고 리턴합니다).
[Exercise09.java] |
import java.util.Scanner; public class Exercise09 { public static void main (String[] args){ boolean run = true; int studentNum = 0; int[ ] scores = null; Scanner scanner = 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 = scanner.nextInt(); if(selecNo == 1){ //작성위치 } else if (selectNo == 2){ //작성위치 } else if (selectNo == 3){ //작성위치 }else if (selectNo == 4){ //작성위치 }else if (selectNo == 5){ run = false; } } System.out.println("프로그램 종료"); } } |
[실행 결과] ![]() |
☞
'이것이 자바다' 카테고리의 다른 글
[이것이 자바다]CH06.클래스(확인문제풀이)-② (0) | 2021.03.28 |
---|---|
[이것이 자바다]CH06.클래스(확인문제풀이)-① (0) | 2021.03.28 |
[이것이 자바다]CH04.조건문과 반복문(확인문제풀이) (0) | 2021.03.21 |
[이것이 자바다]CH03.연산자(확인문제풀이) (0) | 2021.03.21 |
[이것이 자바다]CH02.변수와 타입(확인문제풀이) (0) | 2021.03.18 |