명품 자바 에센셜 연습문제 6장(이론)


문제와 해답은 직접 작성한 것으로 오타가 있을 수도 있으며 해답역시 틀린 부분이 있을 수 있습니다. 틀린 부분에 대한 지적은 적극 수용하도록 하겠습니다. 문제를 먼저 풀어보시고 참고용으로만 봐주시길 바랍니다.



연습문제 6장

1. 어떤 패키지에 속한 클래스들이 import하지 않고도 사용할 수 있는가?
java.lang


2. 다음 코드는 키보드로 문자열을 읽어 ‘/’문자로 분리하여 출력하는 코드이다. import문 없이 동작할 수 있도록 수정하라.

import java.util.*;
public class Example {
    public static void main(string[] args) {
        Scanner scanner = new Scanner(System.in);
        StringTokenizer st = new StringTokenizer(scanner.nextLine(),"/");
        while(st.hasMoreToken())
            System.out.println(st.nextToken());
    }
}
public class Example {
    public static void main(string[] args) {
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        java.util.StringTokenizer st = new java.util.StringTokenizer(scanner.nextLine(),"/");
        ...


3. 다음 Circle 클래스를 drawable 패키지에 속하게 하고자 한다. 빈칸을 채워라.

______________ // Package drawable;
public class Circle {
    int radius;
    public Circle(int radius) { this.radius = radius; }
}

그리고 다음 Main 클래스를 app 패키지에 저장하고, drawable 패키지에 속한 Circle 클래스를 사용하고자 한다. 다음 코드의 빈칸을 채워라.

______________ // Package app;
______________ // import drawable.Circle;
public class Main {
    public static void main(string [] args) {
        Circle c = new Circle(5);
    }
}


4. Wrapper 클래스에 대한 질문이다. 각 한 줄의 코드로 작성하라.
(1) 문자열 "20"을 정수 20으로 변환하는 코드를 작성하라.
Integer.parseInt("20");
(2) 문자열 "35.9"를 double 타입의 실수 35.9로 변환하는 코드를 작성하라.
Double.parseDouble("35.9");
(3) 불린 값 true를 "true"라는 문자열로 변환하는 코드를 작성하라.
Boolean.toString(true);
(4) char 타입의 변수 c의 문자가 영문자면 "eng"를 출력하라.
if(Character.isAlphabetic(c)) System.out.println("eng");
(5) int 타입의 변수 n의 값을 이진수의 문자열로 변환하는 코드를 작성하라.
Integer.toBinnaryString(n);
(6) 정수 50을 16진수의 문자열로 변환하는 코드를 작성하라.
Integer.toHexString(50);


5. 다음 코드에서 박싱, 자동 박싱, 언박싱, 자동 언박싱이 있는 부분을 파악하라.
(1) Integer n = new Integer(20);
(2) double d = 1.2 + new Double(3.4);
(3) System.out.print(3 + new Integer(20));
(4) Boolean b = true;
(5) float f = new Float("10.1");
(6) String s = "abc";


6. ==연산자와 equals() 메소드의 용도는 서로 다르다. 이 둘 중 두 레퍼런스가 같은지 비교하기 위해 사용되는 것은 무엇인가? ‘==’ 그리고 두 레퍼런스가 가리키는 객체의 내용물이 같은지 비교하기 위해 사용되는 것은 무엇인가? ‘equals()’


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

String a = "Hello";
String b = "Hello";
String c = "Java";
String d = new String("Hello");
String e = new String("Java");
String f = new String("Java");

(1) a와 == 연산을 수행하였을때 ture가 되는 문자열을 b-f중 모두 골라라.
b
(2) f와 equals() 연산을 수행하였을때 true가 되는 문자열을 a-e중 골라라.
c, e


8. 다음 문장의 실행 결과에 맞게 빈칸을 채워라.

StringTokenizer st = new StringTokenizer("2+3+4+6", "+");
int n = st.countTokens();
System.out.println("토큰 갯수 = " + n);
while(____________) { // st.hasMoreToken()
    System.out.print(____________ + " "); // st.nextToken()
}


9. 다음 연산의 결과 a, b, c는 어떤 문자열인가?

String a = new String(" hello ");
String b = a;
String c = a.trim();
String a = a.toUpperCase();

a : ' HELLO '
b : ' hello '
c : 'hello'


이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.