'명품 자바 에센셜 풀이' 시리즈명품 자바 에센셜 연습문제 6장(이론)

baealex

소비적인 일보단 생산적인 일을 좋아합니다.

Sign in to view email


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



연습문제 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'


작성된 댓글이 없습니다!
로그인된 사용자만 댓글을 작성할 수 있습니다.