본문 바로가기

자바/명품 자바 프로그래밍

명품 자바 프로그래밍 6장 이론 문제 / 2021.11.20

1. import에 대한 다음 질문에 답하라.

(1) import문은 다른 패키지에 있는 클래스를 사용할 때 사용, 컴파일러에게 클래스의 경로명을 알려준다.

(2) import java.util.Random;은 Random 클래스가 java.util 패키지에 있다는 것을 컴파일러에게 알려준다.

import java.util.*; 은 자바 프로그램 내에서 사용하는 클래스들의 경로명을 찾을 때 java.util 패키지를 확인할 것을 컴파일러에게 지시하는 문이다.

(3) 작성할 수 있다.

(4) java.lang 패키지

2. 패키지에 대한 설명 중 잘못된 것은?

④ 관련있는 클래스들을 하나의 패키지에 

3. import 문을 사용하지 않도록 Example 클래스를 다시 작성하라.

package Chapter6;


public class Example {
	public static void main(String [] args) {
		java.util.StringTokenizer st = new java.util.StringTokenizer("a=3,b=5,c=6", ",");
		while(st.hasMoreTokens())
			System.out.println(st.nextToken());
	}
}

4. 다음과 같이 출력되도록 코드를 수정하라.

package Chapter6;

import java.util.StringTokenizer;

public class Example {
	public static void main(String [] args) {
		int sum = 0;
		StringTokenizer st = new StringTokenizer("a=3,b=5,c=6", ",=");
		while(st.hasMoreTokens()) {
			String token = st.nextToken();
			System.out.println(token);
			int n = 0;
			try {
				n = Integer.parseInt(token);
			}
			catch(NumberFormatException e) {
				
			}
			sum += n;
		}
		System.out.println("합은 " + sum);
	}
}

5. 다음 물음에 답하라.

(1) package device;

(2) package app;

    import device.TV;

(3) device.TV.class 

    app.Home.class

6. Wrapper 클래스에 대한 질문이다. 다음 물음에 답하여라.

(1) String s1 = Integer.toString(20);

(2) double d = Double.parseDouble("35.9");

(3) boolean b = Boolean.parseBoolean("true");

(4) String s2 = Integer.toBinaryString(30);

(5) String c = Character.toString('c');

7. 다음 코드의 실행 결과와 실행 결과의 이유를 말하라.

실행 결과 : 

true

false

 

이유 : 

a == "가나다라" -> String a의 레퍼런스와 "가나다라" 문자열의 레퍼런스값이 일치하므로 true

a == b -> new String(a)에 의해 생성되는 객체는 힙에 생성되므로 String b는 힙 영역을 가리킨다. 따라서 a와 b의 레퍼런스 값은 다르므로 false 

8. 다음 코드가 실행된 후 a, b, c 문자열은 무엇인가?

a : "     Oh, Happy     "

b : "Oh, Happy"

c : "Oh, Happy Day."

9. 다음 코드에 대해 물음에 답하여라.

(1) b

(2) c, e

10. 다음 중 자동 박싱과 자동 언박싱이 있는 부분을 파악하라.

(1) 자동 박싱 : 기본 타입 값 3.14를 Wrapper 객체로 변환

(2) 자동 언박싱 : Wrapper 객체를 기본 타입 값으로 변환

(3) 자동 언박싱 : new Integer(5).intValue() -> 5로 변환

(4) 자동 언박싱 : new Character('c').charValue() -> Wrapper 객체를 'c'로 변환  

11. 100에서 255까지(255포함) 난수를 10개 발생시키는 코드이다.

(1) (int)(Math.random()*156 + 100)

(2)

import java.util.Random;

public class Example{
    public static void main(String [] args){
        Random r = new Random();
        for(int i=0; i<10; i++){
            System.out.print(r.nextInt(156) + 100);
            System.out.print(" ");
        }
    }
}

12. 다음은 2020년 12월 25일의 약속을 저장하기 위해 Calendar 클래스를 활용하는 코드이다 주석문에 맞도록 코드를 작성하라.

Calendar date = Calendar.getInstance(); // Calendar 객체 생성
date.clear(); // 현재 Calendar 객체에 저장된 정보를 모두 지운다. 
date.set(Calendar.YEAR, 2020); // Calendar 객체에 2020년의 년도 저장
date.set(Calendar.MONTH, 11); / Calendar 객체에 12월의 달 저장
date.set(Calendar.DAY_OF_MONTH, 25); // Calendar 객체에 25일의 날짜 지정
System.out.println(“약속 날짜는 ” + date.get(Calendar.YEAR) + “년 ” + 
(date.get(Calendar.MONTH) + 1) + “월 ” + 
date.get(Calendar.DAY_OF_MONTH)+ “일”);