level up 과정 [JAVA]

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

객관식(3)

[문제] 자바의 VM은 기본적으로 멀티 쓰레드 방식이다. 처리를 동시에 할 수 있다는 장점이 있지만 반면에 동시성을 유발할 수 있다. 이때 어떤 동작에서만 싱글 쓰레드로 동작하게 할 수 있는 키워드는 무엇인가?

  • ① synchronized
  • ② singleThread
  • ③ wait
  • ④ goto

[문제] 다음 예제 프로그램에 대한 설명으로 올바르지 않는 것은?

public class Test {
    public static void main(String[] args) {
        String data="jeonhye0"; //(a)
        int num=Integer.parseInt(data); //(b)
        System.out.println(num); //(c)
    }
}
  • ① 컴파일 에러난다.
  • ② (b)라인에서 java.lang.NumberFormatException 발생한다.
  • ③ NumberFormatException은 RuntimeException 하위 클래스이다.
  • ④ try{ int num=Integer.parseInt(data); //(b)}catch(Exception e){}와 같이 하면 실행 시 문제가 발생한다.

[문제] 다음중 최상위 예외객체는 어느것인가?

  • ① Exception
  • ② IOException
  • ③ RemoteException
  • ④ RunTimeException
(java.lang.Object -> java.lang.Throwable -> java.lang.Exception -> java.lang.RuntimeException)

[문제] 다음 중 기능이 다른 셋과 다른 제어문은?

  • ① for
  • ② do-while
  • ③ if
  • ④ while

[문제] 다음 중 객체지향 개념의 하나인 Encapsulation의 장점이 아닌 것은 무엇인가?

  • ① 다른 클래스에 어느 정도 의존적인가를 나타내는 정도이다.
  • ② 인터페이스를 변경하지 않고 클래스의 구현을 변경할 수 있다.
  • ③ 클래스의 내부 및 구현 방법을 알 필요 없이 본인의 클래스를 개발 할 수 있다.
  • ④ 클래스의 어트리뷰트가 부적절하게 변경되는 것을  막을 수 있다.

[문제] 다음은 리팩토링의 특징에 대해서 설명한 것이다. 내용이 올바르지 않은 것은 무엇인가?

  • ① 리팩토링은 새로운 기능을 추가하는 것은 아니다.
  • ② 패턴을 적용하게 되면 리팩토링은 할 필요가 없다.
  • ③ 복잡한 코드일수록 리팩토링을 해야 할 필요가 있다.
  • ④ 유지보수가 용이하려면 리팩토링을 해야만 한다.

[문제] 다음 중 컴파일과 실행이 가능한 main()메서드의 형태를 두 개 고르시오.

  • ① public static void main();
  • ② public static void main(String[] args[]);
  • ③ public static void main(String args);
  • ④ public static void main(String args[]);
  • ⑤ public static void main(String[] args);
※ 참조
컴파일과 실행이 가능한 main() 메소드의 형태는 아래의 4가지.

public static void main(String args[])
public static void main(String[] args)
static public void main(String args[])
static public void main(String[] args)
그렇지만
static void main(String[] args)는 컴파일에서는 문제가 없지만,
수행시에 Main method no
t public으로 보인다.

[문제] 다음 중 에러 없이 컴파일되며 상속되지 않는 클래스를 고르시오.

  • ① final abstract class Test{
           int i;
           void methodA(){}

       }
  • ② private class Test{
           int i;
           abstract void methodA();

       }
  • ③ abstract Test{
           final int i = 0;
           final void methodA(){}

       }
  • ④ final class Test{
           final int i=0;
           final void methodA(){}

       }
  • ⑤ final class Test{
           int i;
           void methodA(){}

       }
※ 참조
1,2는 클래스 선언이 잘못되었다.
final과 abstract는 함께 올 수 없으며, private는 클래스 앞에 올 수 없는 접근 제한자이다.
 
단 nested class로 선언된 경우 (클래스 안에 클래스
선언) private 또한 사용 가능하다. 
3 abstract 클래스는 상속할 수 있고, final 변수나 메
소드를 가지는 클래스도 상속할 수 있으므로 4도 상속 할 수 있다.

[문제] 다음 프로그램의 실행결과는?

public class Test{
    public static void leftShift(int i, int j){
        i<<=j;
    }
    public static void main(String[] args){
        int i=4, j=2;
        leftShift(i,j);
        System.out.println(i);
    }
}
  • ① 2
  • ② 4
  • ③ 8
  • ④ 16
  • ⑤ 컴파일 에러
※ 참조
leftShift 함수에서 변수 i의 값을 바꾸기는 했지만 이는 main 메소드에서 정의된 i와 j의 값에는 영향을 미치지 못함.

[문제] point x 위치에 올 수 있는 문장을 모두 고르시오.

class Super{
    public float getNumber(){
        return 3.0f;
    }
}

public class Sub extends Super{
    // point x
}

1) public float getNumber(){return 4.f;}

2) public void getNumber(){return 4.0f;}

3) public void getNumber(double d);

4) public double getNumber(float f){return 4.0f;}

1)는 제한자의 범위와 반환형 매개변수의 개수가 모두 일치하는 메소드 오버라이딩이므로 해당 위치에 올 수 있다. 3)와 4)의 경우에는 매개변수의 수가 다르기 때문에 오버로딩의 의미로 해당 위치에서 사용될 수 있다.
단, 2)의 경우 매개변수의 수와 메소드 이름이 상위 클래스의 메소드와 일치하지만 반환형은 일치하지 않으므로, 오버라이딩이 잘못되었다는 컴파일 에러를 발생시킨다.

[문제] 다음 코드가 실행된 뒤 temp변수의 값은?

public static void main(Stirng[] args){
    Long temp = (int)3.9;
    temp %= 2;
}
  • ① 0
  • ② 1
  • ③ 2
  • ④ 3
  • ⑤ 4
int형 변환 시 내림하므로 3%2=1이 된다.

 [문제] 다음 중 맞는 선언문을 두 가지 고르시오.

  • ① String s = null;
  • ② String s = 'null';
  • ③ String s = (String)'abc';
  • ④ String s = "This is a string";
  • 5 String s = "This is a very\n long string";

[문제] ()안에 올 수 없는 코드를 두 가지 고르시오.

( )
public class A{}
  • ① package B;
  • ② class B{}
  • ③ public class B{}
  • ④ protected class B{}
  • ⑤ import java.lang.*;
public class는 파일에 하나만 존재하며, protected 접근제한자는 클래스 앞에 올 수 없다.
  • 봤어요 (0명)

댓글

댓글 본문
작성자
비밀번호
버전 관리
어디다써
현재 버전
선택 버전
graphittie 자세히 보기