Closed yummygyudon closed 2 years ago
printStackTrace()
와 getMessage()
》Q1.예외처리의 정의와 목적에 대해 서술하시오.
Q2.다음 중 RuntimeException
클래스 계열을 고르시오.
- ArrayIndexOutOfBoundsException (배열 범위 벗어남)
-NullPointerException (값이 null인 참조변수 멤버 호출)
-ClassCastException(클래스간 형변환 오류)
-ArithmeticException(정수를 0으로 나눔)
Q3.다음 코드를 실행시키게된다면 어떻게 출력될지 적어보시오.
동규의 나이는
2022년 기준
24살
입니다.
Q1. 다음 중 옳지 않은 것을 고르시오. (1개)
(4) finally 블럭 : 예외 발생 여부와 연관지어 수행되어야 하는 코드를 넣음
Q2.예외를 처리하는 방법은 (ㄱ) 직접처리, (ㄴ) 예외 떠넘기기(알리기), (ㄷ) 은폐 덮기(무시)로 3가지가 있다. 이 중에서 try-catch문에 해당하는 방법과, 예외 선언하기에 해당하는 방법을 순서대로 적은 것은?
(1) ㄱ-ㄴ
toString()
》Q1.다음의 O/X 문제를 푸시오.
1) O
2) X
3) X
4) O
5) X
Q2.Object 클래스에 관해 맞는 것을 2가지 고르시오.
1) object 클래스는 모든 클래스의 최고 조상이다.
4) hashCode()는 객체의 주소값을 이용해 해시코드를 만들기 때문에 서로 다른 객체는 같은 해시코드를 가질 수 없다.
(이거 혹시 틀린건가요..?32bit 경우가 있어서..?)
3) equals()를 오버로딩하여 주소가 아닌 객체에 저장된 내용을 비교하도록 변경할 수 있다. -> "오버라이딩"
toString()
의 오버라이딩 ~ Chap.12 : join()
과 StringJoiner
》Q1. String 클래스 내에는 많은 생성자와 메서드들이 있다. 그 중 문자열 중의 문자열(부분 or 전체)를 바꿀 수 있는 메서드가 존재하는데 replace와 replaceAll이다. 두 메서드 다 문자열의 부분이나 전체 문자열을 바꿀 수 있는 메서드이다.
replaceAll 같은 경우 첫번째 매개변수는 " 정규표현식 "으로 입력 받고 일치하는 문자열을 두번째 받은 매개변수로 바꿔주는 반면
replace 는 첫번째 매개변수로 " 기존에 있던 문자열 "을 받고 두번째 매개변수로 " 바꿀 문자열 "을 받는다.
Q2. 아래 코드의 출력값은? 해당 출력이 나오는 이유도 설명하시오(두 방법 모두 설명).
출력값 1: true
출력값 2: false
Q3. StringJoiner 클래스 사용의 장점
문자열의 " 마지막 순서(suffix) " 나 " 첫 순서(prefix) "에 특정 기호가 필요한 경우가 있는데
join메서드의 경우 이 부분에 대한 별도 처리가 필요하지만
StringJoiner클래스의 경우 해당 클래스에 prefix와 suffix를 미리 지정해서 처리할 수 있다.
Q1. 정수형 데이터를 문자열로 변경하기 위해 다음 ()안을 채워라
int i = 100;
String str1 = i + "";
Q2. 다음 코드의 출력 결과를 적어라
false
false
true
Q2. 다음 내용에 대하여 옳거나 틀린 문장을 구분하고, 틀린 것은 고쳐 바르게 서술하시오.
- 기본형 값은 객체로 다뤄지는 것이 기본이다. -> " 별도의 객체 변환 작업이 필요하다. "
- 내부적으로 기본형 변수를 가지고 있어, 비교 연산자를 사용할 수 있다. -> "비교연산자를 사용할 수 없다. :
compareTo()
제공"
Q1. < ㄱ > 클래스는 추상클래스로 내부적으로 숫자를 멤버변루소 갖는 래퍼 클래스들의 조상이며, 자손으로 < ㄴ >과 < ㄷ >등이 있는데 < ㄴ >은 long으로도 다룰 수 없는 큰범위의 정수를, < ㄷ >은 double로도 다룰 수 없는 큰 범위의 부동 소수점수를 처리하기 위한 것이다. < >에 들어갈 정답을 각각 쓰시오.
Q2. 다음 항목에 대해 O, X를 표시하시오.
1. 문자열을 숫자열로 변환하는 방법에는 '타입.parse타입(String s)' 도 포함된다. ( O )
2. 문자열을 숫자열로 변환하는 방법에는 타입.valueOf( )도 포함된다. ( O )
3. 만약 1번이 O라면 반환값의 타입은 참조형이다. ( X ) : 기본형
4. 만약 2번이 O라면 반환값의 타입은 참조형이다. ( X ) : 래퍼클래스 타입
5. 오토박싱이란 래퍼 클래스의 객체를 기본형 값으로 자동 변환해주는 것을 말한다. ( X ) : 언박싱
4. 만약 2번이 O라면 반환값의 타입은 참조형이다. ( O ) : 참조형
printStackTrace()
와 getMessage()
》Q1.예외처리의 정의와 목적에 대해 서술하시오.
정의 : 예외의 발생에 대비한 코드 작성하는 것
목적 : 프로그램의 비정상적인 종료 방지
Q2.다음 중 RuntimeException
클래스 계열을 고르시오.
-ArrayIndexOutOfBoundsException (배열 범위 벗어남) O
-FileNotFoundException (존재하지 않는 파일 이름 입력)
-ClassNotFoundException (잘못된 클래스이름 입력)
-IOException (잘못된 입출력)
-NullPointerException (값이 null인 참조변수 멤버 호출) O
-ClassCastException (클래스간 형변환 오류) O
-OutOfMemoryError (메모리부족)
-ArithmeticException(정수를 0으로 나눔) O
Q3.다음 코드를 실행시키게된다면 어떻게 출력될지 적어보시오.
class Test {
public static void main(String[] args) {
System.out.println("동규의 나이는");
try {
System.out.println("2022년 기준") ;
System.out.println(0/0);
System.out.println(23+"살") ;
}catch ( Exception e ) {
System.out.println(24+"살") ;
}
System.out.println("입니다.") ;
}
}
Q1. 다음 중 옳지 않은 것을 고르시오. (1개) 4번
(1) 멀티 catch 블럭 : 내용이 같은 catch블럭을 하나로 합친 것(JDK1.7부터)으로 공통된 부분만 참조변수 사용 가능하고 부모자식 관계는 불가능하다.
(2) checked 예외 : 컴파일러가 예외 처리 여부를 체크 (예외처리필수) - Exception
(3) uncheked 예외 : 컴파일러가 예외 처리 여부를 체크하지 않음 (예외처리선택) - RuntimeException
(4) finally 블럭 : 예외 발생 여부와 연관지어 수행되어야 하는 코드를 넣음
Q2.예외를 처리하는 방법은 (ㄱ) 직접처리, (ㄴ) 예외 떠넘기기(알리기), (ㄷ) 은폐 덮기(무시)로 3가지가 있다. 이 중에서 try-catch문에 해당하는 방법과, 예외 선언하기에 해당하는 방법을 순서대로 적은 것은? 1번
(1) ㄱ-ㄴ
(2) ㄴ-ㄷ
(3) ㄷ-ㄱ
(4) ㄴ-ㄱ
toString()
》Q1.
Q1.
toString()
의 오버라이딩 ~ Chap.12 : join()
과 StringJoiner
》Q1. String 클래스 내에는 많은 생성자와 메서드들이 있다. 그 중 문자열 중의 문자열(부분 or 전체)를 바꿀 수 있는 메서드가 존재하는데 replace와 replaceAll이다. 두 메서드 다 문자열의 부분이나 전체 문자열을 바꿀 수 있는 메서드이다.
public static void main(String[] args) {
String s = "Hello Python World!";
String s2 = "Hello JavaScript World!";
s.replace("Python", "Java");
s2.replaceAll("JavaScript", "Java");
System.out.println(s);
//Hello Java World!
System.out.println(s2)
//Hello Java World!
}
그렇다면 둘의 차이점은 무엇일까?
모르겠다...ㅎㅎ
Q2. 아래 코드의 출력값은? 해당 출력이 나오는 이유도 설명하시오(두 방법 모두 설명).
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");
System.out.println(s1 == s2);
// 출력값 1: true
System.out.println(s3 == s4);
// 출력값 2: false
}
문자열 리터럴은 이미 존재하는 것을 재사용 / new연산자를 쓸경우 새로운 인스턴스가 생성되므로 다른 객체이기 때문에 false
Q1. 정수형 데이터를 문자열로 변경하기 위해 다음 ()안을 채워라
int i = 100;
String str1 = i + ();
""
Q2. 다음 코드의 출력 결과를 적어라
StringBuffer sb = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
System.out.println(sb == sb2);
System.out.println(sb.equals(sb2));
String s = sb.toString();
String s2 = sb2.toString();
System.out.println(s.equals(s2));
Q1. StringBuffer와 StringBuilder의 공통점과 차이점을 각각 서술하시오.
같은 기능인데 Builder가 성능이 더 좋음
Q2. 다음 내용에 대하여 옳거나 틀린 문장을 구분하고, 틀린 것은 고쳐 바르게 서술하시오.
- 래퍼 클래스는 기본형을 클래스로 정의한 것이다. o
- 기본형 값은 객체로 다뤄지는 것이 기본이다. x 객체로 다루지 않음
- toString()과 equals()가 기본적으로 오버라이딩 되어 있다. x 오버라이딩 해서 사용해야함
- 내부적으로 기본형 변수를 가지고 있어, 비교 연산자를 사용할 수 있다. o
Q1. < ㄱ > 클래스는 추상클래스로 내부적으로 숫자를 멤버변수로 갖는 래퍼 클래스들의 조상이며, 자손으로 < ㄴ >과 < ㄷ >등이 있는데 < ㄴ >은 long으로도 다룰 수 없는 큰범위의 정수를, < ㄷ >은 double로도 다룰 수 없는 큰 범위의 부동 소수점수를 처리하기 위한 것이다. < >에 들어갈 정답을 각각 쓰시오.
ㄱ : Number / ㄴ : BigInteger / ㄷ : BigDecimal
Q2. 다음 항목에 대해 O, X를 표시하시오.
1. 문자열을 숫자열로 변환하는 방법에는 '타입.parse타입(String s)' 도 포함된다. O
2. 문자열을 숫자열로 변환하는 방법에는 타입.valueOf( )도 포함된다. O
3. 만약 1번이 O라면 반환값의 타입은 참조형이다. X , '타입.parse타입(String s)' 의 반환값은 기본형
4. 만약 2번이 O라면 반환값의 타입은 참조형이다. O
5. 오토박싱이란 래퍼 클래스의 객체를 기본형 값으로 자동 변환해주는 것을 말한다. X , 언박싱에 대한 설명이며, 오토박싱은 이와 반대임(기본형 값을 래퍼 클래스의 객체로 자동변환)
Q1.예외처리의 정의와 목적에 대해 서술하시오.
정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것
목적 : 프로그램의 비정상 종료를 막고 정상적인 실행상태를 유지하는 것
Q2.다음 중 RuntimeException
클래스 계열을 고르시오.
-ArrayIndexOutOfBoundsException (배열 범위 벗어남)
-NullPointerException (값이 null인 참조변수 멤버 호출)
-ClassCastException (클래스간 형변환 오류)
?
Q3.다음 코드를 실행시키게된다면 어떻게 출력될지 적어보시오.
class Test {
public static void main(String[] args) {
System.out.println("동규의 나이는");
try {
System.out.println("2022년 기준") ;
System.out.println(0/0);
System.out.println(23+"살") ;
}catch ( Exception e ) {
System.out.println(24+"살") ;
}
System.out.println("입니다.") ;
}
}
// 동규의 나이는
// 2022년 기준
// 24살
// 입니다.
Q1. 다음 중 옳지 않은 것을 고르시오. (1개)
4
(1) 멀티 catch 블럭 : 내용이 같은 catch블럭을 하나로 합친 것(JDK1.7부터)으로 공통된 부분만 참조변수 사용 가능하고 부모자식 관계는 불가능하다.
(2) checked 예외 : 컴파일러가 예외 처리 여부를 체크 (예외처리필수) - Exception
(3) uncheked 예외 : 컴파일러가 예외 처리 여부를 체크하지 않음 (예외처리선택) - RuntimeException
(4) finally 블럭 : 예외 발생 여부와 연관지어 수행되어야 하는 코드를 넣음
Q2.예외를 처리하는 방법은 (ㄱ) 직접처리, (ㄴ) 예외 떠넘기기(알리기), (ㄷ) 은폐 덮기(무시)로 3가지가 있다. 이 중에서 try-catch문에 해당하는 방법과, 예외 선언하기에 해당하는 방법을 순서대로 적은 것은?
1
(1) ㄱ-ㄴ
(2) ㄴ-ㄷ
(3) ㄷ-ㄱ
(4) ㄴ-ㄱ
toString()
》Q1.다음의 O/X 문제를 푸시오.
o 1) 사용자 정의 예외 클래스로 메세지를 저장하려면 String을 매개변수로 받는 생성자를 추가해야 한다. (O/X)
x 2) 예외가 여럿인 경우, try-catch문을 통한 예외처리하는 방법과 선언부에 지정해 호출한 메서드에서 예외처리, 2가지 방법을 사용할 수 있다. 예외가 발생한 경우, 예외는 둘 중 어느 방법이든 한 쪽에서만 처리 가능하다. (O/X)
o 3) 예외 되던지기 방법을 사용할 때, 메서드의 선언부에 발생할 예외를 'throw'로 지정해줘야 한다. (O/X)
o 4) 한 예외가 다른 예외를 발생시킬 수 있는 것을 '연결된 예외'라고 한다. (O/X)
x 5) Throwable 클래스의 getCause()는 지정한 예외를 원인 예외로 등록하는 것이고, initCause()는 원인 예외를 반환하는 것이다. (O/X)
Q2.Object 클래스에 관해 맞는 것을 2가지 고르시오.
1, 4
1) object 클래스는 모든 클래스의 최고 조상이다.
2) equals()는 매개변수로 객체의 값을 받아서 비교해 boolean으로 결과값을 알려준다.
3) equals()를 오버로딩하여 주소가 아닌 객체에 저장된 내용을 비교하도록 변경할 수 있다.
4) hashCode()는 객체의 주소값을 이용해 해시코드를 만들기 때문에 서로 다른 객체는 같은 해시코드를 가질 수 없다.
5) object 클래스에 정의된 toString()에 의하면, 인스턴스가 갖고 있는 문자열을 반환한다.
toString()
의 오버라이딩 ~ Chap.12 : join()
과 StringJoiner
》Q1. String 클래스 내에는 많은 생성자와 메서드들이 있다. 그 중 문자열 중의 문자열(부분 or 전체)를 바꿀 수 있는 메서드가 존재하는데 replace와 replaceAll이다. 두 메서드 다 문자열의 부분이나 전체 문자열을 바꿀 수 있는 메서드이다.
public static void main(String[] args) {
String s = "Hello Python World!";
String s2 = "Hello JavaScript World!";
s.replace("Python", "Java");
s2.replaceAll("JavaScript", "Java");
System.out.println(s);
//Hello Java World!
System.out.println(s2)
//Hello Java World!
}
그렇다면 둘의 차이점은 무엇일까?
replace는 문자열 중의 문자열(python)을 새로운 문자열(java)로 모두 바꾼 거
replaceAll은 지정된 문자열을 새로운 문자열로 모두 바꾸는 것
Q2. 아래 코드의 출력값은? 해당 출력이 나오는 이유도 설명하시오(두 방법 모두 설명).
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");
System.out.println(s1 == s2);
System.out.println(s3 == s4);
}
// 출력값 1: true
// 출력값 1: false
// 주소를 비교하기 때문
Q3. StringJoiner 클래스 사용의 장점
문자열 결합하는 사용법이 간단하다?
Q1. 정수형 데이터를 문자열로 변경하기 위해 다음 ()안을 채워라
int i = 100;
String str1 = i + ();
// ""
Q2. 다음 코드의 출력 결과를 적어라
StringBuffer sb = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
System.out.println(sb == sb2);
System.out.println(sb.equals(sb2));
String s = sb.toString();
String s2 = sb2.toString();
System.out.println(s.equals(s2));
// false
// false
// true
Q1. StringBuffer와 StringBuilder의 공통점과 차이점을 각각 서술하시오.
StringBuffer에서 쓰레드와 동기화를 뺀 것이 StringBuilder
Q2. 다음 내용에 대하여 옳거나 틀린 문장을 구분하고, 틀린 것은 고쳐 바르게 서술하시오.
- 래퍼 클래스는 기본형을 클래스로 정의한 것이다.
- 기본형 값은 객체로 다뤄지는 것이 기본이다.
- toString()과 equals()가 기본적으로 오버라이딩 되어 있다.
- 내부적으로 기본형 변수를 가지고 있어, 비교 연산자를 사용할 수 있다.
1 - 8개의 기본형을 객체로 다뤄야 할 때 사용하는 클래스
2 - 기본형의 값은 객체로 다루지 않음 - 완전한 객체지향언어가 아니기 때문
3 - equals()는 오버라이딩 되어 있지 않음
4 - 내제 되어 있나...모르겠다 틀린거는 같다...
Q1. < ㄱ > 클래스는 추상클래스로 내부적으로 숫자를 멤버변루소 갖는 래퍼 클래스들의 조상이며, 자손으로 < ㄴ >과 < ㄷ >등이 있는데 < ㄴ >은 long으로도 다룰 수 없는 큰범위의 정수를, < ㄷ >은 double로도 다룰 수 없는 큰 범위의 부동 소수점수를 처리하기 위한 것이다. < >에 들어갈 정답을 각각 쓰시오.
ㄱ - Number , ㄴ - BigInteger , ㄷ- BigDecimal
Q2. 다음 항목에 대해 O, X를 표시하시오.
o 1. 문자열을 숫자열로 변환하는 방법에는 '타입.parse타입(String s)' 도 포함된다.
o 2. 문자열을 숫자열로 변환하는 방법에는 타입.valueOf( )도 포함된다.
x 3. 만약 1번이 O라면 반환값의 타입은 참조형이다.
o 4. 만약 2번이 O라면 반환값의 타입은 참조형이다.
x 5. 오토박싱이란 래퍼 클래스의 객체를 기본형 값으로 자동 변환해주는 것을 말한다.
Q1.예외처리의 정의와 목적에 대해 서술하시오
프로그램 실행시 발생할 수 있는 프로그램 실행을 멈추는 오류에 대한 처리
프로그램이 지속적으로 실행될 수 있게 하며 예외가 발생할 수 있는 모든 경우에 대비하는 것.
Q2.다음 중 RuntimeException
클래스 계열을 고르시오.
-ArrayIndexOutOfBoundsException (배열 범위 벗어남) -FileNotFoundException (존재하지 않는 파일 이름 입력) -ClassNotFoundException (잘못된 클래스이름 입력) -IOException (잘못된 입출력) -NullPointerException (값이 null인 참조변수 멤버 호출) -ClassCastException (클래스간 형변환 오류) -OutOfMemoryError (메모리부족) -ArithmeticException(정수를 0으로 나눔)
Q3.다음 코드를 실행시키게된다면 어떻게 출력될지 적어보시오.
class Test {
public static void main(String[] args) {
System.out.println("동규의 나이는");
try {
System.out.println("2022년 기준") ;
System.out.println(0/0);
System.out.println(23+"살") ;
}catch ( Exception e ) {
System.out.println(24+"살") ;
}
System.out.println("입니다.") ;
}
}
동규의 나이는 2022년 기준 24살입니다.
Q4. 다음 중 옳지 않은 것을 고르시오. (1개)
(1) 멀티 catch 블럭 : 내용이 같은 catch블럭을 하나로 합친 것(JDK1.7부터)으로 공통된 부분만 참조변수 사용 가능하고 부모자식 관계는 불가능하다. (2) checked 예외 : 컴파일러가 예외 처리 여부를 체크 (예외처리필수) - Exception (3) uncheked 예외 : 컴파일러가 예외 처리 여부를 체크하지 않음 (예외처리선택) - RuntimeException (4) finally 블럭 : 예외 발생 여부와 연관지어 수행되어야 하는 코드를 넣음
Q5.예외를 처리하는 방법은 (ㄱ) 직접처리, (ㄴ) 예외 떠넘기기(알리기), (ㄷ) 은폐 덮기(무시)로 3가지가 있다. 이 중에서 try-catch문에 해당하는 방법과, 예외 선언하기에 해당하는 방법을 순서대로 적은 것은?
4) ㄴ-ㄱ
Q6.다음의 O/X 문제를 푸시오.
O, X, O, O, X
Q7.Object 클래스에 관해 맞는 것을 2가지 고르시오.
Q8. String 클래스 내에는 많은 생성자와 메서드들이 있다. 그 중 문자열 중의 문자열(부분 or 전체)를 바꿀 수 있는 메서드가 존재하는데 replace와 replaceAll이다. 두 메서드 다 문자열의 부분이나 전체 문자열을 바꿀 수 있는 메서드이다.
public static void main(String[] args) {
String s = "Hello Python World!";
String s2 = "Hello JavaScript World!";
s.replace("Python", "Java");
s2.replaceAll("JavaScript", "Java");
System.out.println(s);
//Hello Java World!
System.out.println(s2)
//Hello Java World!
}
그렇다면 둘의 차이점은 무엇일까?
해답) replaceAll의 경우에는 regex(정규 표현식)이 사용이 가능하다. 아래의 코드를 보면 이해하기 쉽다.
public static void main(String[] args) {
String s = "abcababccddeefabc";
String s2 = "abcababccddeefabc";
s.replace("abc", "0");
s2.replaceAll("[abc]", "0");
//[abc]는 "a" or "b" or "c"의 의미를 가진다.
System.out.println(s)
// 0ab0cddef0
System.out.println(s2)
// 000000000ddeef000
}
Q9. 아래 코드의 출력값은? 해당 출력이 나오는 이유도 설명하시오(두 방법 모두 설명).
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
String s3 = new String("abc");
String s4 = new String("abc");
System.out.println(s1 == s2);
// 출력값 1: ?
System.out.println(s3 == s4);
// 출력값 2: ?
}
s1, s2의 경우 문자열 리터럴을 생성하는 방식이고
s3, s4의 경우는 String 클래스의 생성자를 사용하여 만드는 방식이다.
문자열 리터럴 방식을 사용하면 문자열 선언할 때 해당 문자열 객체가 String Constant Pool에 존재한다면 안에 있는 객체를 참조하고 String Constant Pool에 존재하지 않다면 새로 할당해준다. 따라서 둘은 같은 객체를 참조하게 되어 == 연산자를 사용했을 때 true가 나오는 것.
생성자를 통해 문자열을 만들 경우, 만들 때마다 새로운 인스턴스를 만드는 것이기 때문에 값은 같아도 주소가 달라지게 된다. 따라서 s3, s4는 서로 다른 인스턴스를 참조하기 때문에 ==연산자를 사용했을 때 false가 나온다.
Q10. StringJoiner 클래스 사용의 장점
StringBuilder나 StringBuffer 사용시 중간 중간 구분자를 넣어주어야하는 반면 StringJoiner의 경우 자동으로 붙여줄 수 있다. Prefix와 Suffix도 추가 가능한 장점이 있다.
Q11. 정수형 데이터를 문자열로 변경하기 위해 다음 ()안을 채워라
int i = 100; String str1 = i + (““);
Q12. 다음 코드의 출력 결과를 적어라
StringBuffer sb = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
System.out.println(sb == sb2);
System.out.println(sb.equals(sb2));
String s = sb.toString();
String s2 = sb2.toString();
System.out.println(s.equals(s2));
false → 각기 다른 인스턴스
false → 안의 문자열 비교가 아니라 StringBuffer 비교? 잘 모르겠지만 false
true → 안의 String값 비교
Q13. StringBuffer와 StringBuilder의 공통점과 차이점을 각각 서술하시오.
StringBuffer와 StringBuilder 모두 배열처럼 사용 가능?
StringBuffer는 max index정해져 있고 StringBuilder는 없고?
모르겠음
Q14. 다음 내용에 대하여 옳거나 틀린 문장을 구분하고, 틀린 것은 고쳐 바르게 서술하시오.
Q15. < ㄱ > 클래스는 추상클래스로 내부적으로 숫자를 멤버변루소 갖는 래퍼 클래스들의 조상이며, 자손으로 < ㄴ >과 < ㄷ >등이 있는데 < ㄴ >은 long으로도 다룰 수 없는 큰범위의 정수를, < ㄷ >은 double로도 다룰 수 없는 큰 범위의 부동 소수점수를 처리하기 위한 것이다. < >에 들어갈 정답을 각각 쓰시오.
ㄱ: Number
ㄴ: 모름
ㄷ: 모름
Q16. 다음 항목에 대해 O, X를 표시하시오.
O, O, O, X, O
《 Chap.1 : 프로그램 오류 ~ Chap.7 : printStackTrace()와 getMessage() 》 Q1. 예기치 못한 예외에 대한 대비를 하는 코드 예외 발생시 프로그램이 비정상적으로 종료되는 것을 막기 위함 Q2. ArrayIndexOutOfBoundsException (배열 범위 벗어남) NullPointerException (값이 null인 참조변수 멤버 호출) ArithmeticException(정수를 0으로 나눔) Q3. 2022년 기준 24살 입니다.
《 Chap.8 : 멀티 catch 블럭 ~ Chap.14 : finally 블럭 》 Q1. (4) Q2. (1)
《 Chap.15 : 사용자 정의 예외 만들기 ~ (9장) Chap.5 Object클래스의 메서드 - toString()》 Q1. 1) 2) X 3) O 4) O 5) Q2. 1), 4)
《 Chap.6 : toString()의 오버라이딩 ~ Chap.12 : join()과 StringJoiner 》
Q1.
Q2.
true : 전자는 s1, s2에 같은 주소("abc"의 주소)가 저장
false : 후자는 s3, s4 각각에 개별의 주소가 저장됨
Q3.
《 Chap.13 : 문자열과 기본형 간의 변환 ~ Chap.20 : StringBuffer의 생성자와 메서드 예제 》 Q1. "" Q2. false false true
《 Chap.21 : StringBuilder ~ Chap.26 : 래퍼(wrapper) 클래스 예제 》 Q1. Q2.
《 Chap.27 : Number클래스 ~ Chap.31 : 오토박싱 & 언박싱 예제 》 Q1. Number, BigInteger, BigDecimal Q2. 1: O 2: O 3: X 4: O 5: O
printStackTrace()
와 getMessage()
》Q1.예외처리의 정의와 목적에 대해 서술하시오.
예외처리는 프로그램 실행 중 발생할 수 있는 에러들에 대해 대처하기 위해 진행하는것? 오류가 발생하여 비정상 종료되는 것을 막기 위함??
Q2.다음 중 RuntimeException
클래스 계열을 고르시오.
-ArrayIndexOutOfBoundsException (배열 범위 벗어남) -NullPointerException (값이 null인 참조변수 멤버 호출) -ClassCastException (클래스간 형변환 오류) -OutOfMemoryError (메모리부족) -ArithmeticException(정수를 0으로 나눔)
Q3.다음 코드를 실행시키게된다면 어떻게 출력될지 적어보시오.
동규의 나이는 2022년 기준 24살
Q1. 다음 중 옳지 않은 것을 고르시오. (1개)
(4)
Q2.예외를 처리하는 방법은 (ㄱ) 직접처리, (ㄴ) 예외 떠넘기기(알리기), (ㄷ) 은폐 덮기(무시)로 3가지가 있다. 이 중에서 try-catch문에 해당하는 방법과, 예외 선언하기에 해당하는 방법을 순서대로 적은 것은?
(1)
toString()
》Q1.다음의 O/X 문제를 푸시오.
X X X O X
Q2.Object 클래스에 관해 맞는 것을 2가지 고르시오.
(1), (3)
toString()
의 오버라이딩 ~ Chap.12 : join()
과 StringJoiner
》Q1. String 클래스 내에는 많은 생성자와 메서드들이 있다. 그 중 문자열 중의 문자열(부분 or 전체)를 바꿀 수 있는 메서드가 존재하는데 replace()와 replaceAll()이다. 두 메서드 다 문자열의 부분이나 전체 문자열을 바꿀 수 있는 메서드이다.
replace()는 최초로 발견한 문자열(부분/전체) 1회에 대해서만 replace를 수행하고, replaceAll()은 전체 문자열 내에서 검색해 모든 일치하는 case에 대해 replace를 수행한다..
Q2. 아래 코드의 출력값은? 해당 출력이 나오는 이유도 설명하시오(두 방법 모두 설명).
비교연산자 ==의 경우, String클래스를 대상으로 비교를 수행하면 그 참조변수가 가진 주소값을 이용해 비교연산을 수행한다. 출력값 1: true (상수 "abc"는 단 1회만 저장되므로 s1과 s2에 동일한 주소값 저장) 출력값 2 : false (new로 선언해 새로 생성하였으므로 서로 주소값이 다르다)
Q3. StringJoiner 클래스 사용의 장점
Q1. 정수형 데이터를 문자열로 변경하기 위해 다음 ()안을 채워라
""
Q2. 다음 코드의 출력 결과를 적어라
false true true
Q1. StringBuffer와 StringBuilder의 공통점과 차이점을 각각 서술하시오.
Q2. 다음 내용에 대하여 옳거나 틀린 문장을 구분하고, 틀린 것은 고쳐 바르게 서술하시오.
Q1. < ㄱ > 클래스는 추상클래스로 내부적으로 숫자를 멤버변수로 갖는 래퍼 클래스들의 조상이며, 자손으로 < ㄴ >과 < ㄷ >등이 있는데 < ㄴ >은 long으로도 다룰 수 없는 큰범위의 정수를, < ㄷ >은 double로도 다룰 수 없는 큰 범위의 부동 소수점수를 처리하기 위한 것이다. < >에 들어갈 정답을 각각 쓰시오.
ㄱ: Number ㄴ: Integer ㄷ: Double
Q2. 다음 항목에 대해 O, X를 표시하시오.
O X O? X? X
1. 교재
📕 Java의 정석_기초편 -제 2권- : 「Chapter 9. java.lang패키지와 유용한 클래스 ✔ ~ Chapter 10. 날짜와 시간 & 형식화」
기간 : 2022.02.05 ~ 2022.02.11
*방법은 이전 주와 동일
2. 준비 문제
Wiki