자바 기본 문제를 만들어 봤습니다.
1. 자바 프로그램에서 메인 메소드를 호출하는 방법은 무엇인가요?
- A) 직접 호출합니다.
- B) 다른 클래스에서 호출합니다.
- C) JVM이 자동으로 호출합니다.
- D) 메인 메소드가 없으면 호출할 수 없습니다.
정답: C)
2. 다음 코드를 실행했을 때 출력 결과는 무엇인가요?
```java
int x = 10;
int y = 20;
int z = (++x) + (y--);
System.out.println(z);
```
정답: 31
3. 배열을 생성하는 방법으로 틀린 것은 무엇입니까?
A) int[] array = {1, 2, 3};
B) int[] array: array = {1, 2, 3};
C) int[] array = new int[3];
D) int[][] array = new int[3][2];
정답: B)
4. 자바에서 배열의 크기를 변경하려면 어떻게 해야 하나요?
- A) new 키워드로 새로운 배열을 생성합니다.
- B) Array.length() 메소드를 사용하여 현재 크기를 확인합니다.
- C) Array.resize() 메소드를 사용하여 크기를 조정합니다.
- D) 배열의 length 속성을 직접 수정합니다.
정답: A)
5. 자바에서 객체 지향 프로그래밍의 주요 특징이 아닌 것은 무엇인가요?
- A) 캡슐화
- B) 상속
- C) 다형성
- D) 접근성
정답: D)
6. 자바에서 문자열 연결을 위해 + 연산자를 사용하는 것이 아니라, 더 효율적인 방법이 있습니다. 그 방법은 무엇인가요?
- A) StringBuilder 클래스를 사용합니다.
- B) String.format() 메소드를 사용합니다.
- C) concat() 메소드를 사용합니다.
- D) String.join() 메소드를 사용합니다.
정답: A)
7. 자바에서 null 값을 처리하는 가장 안전한 방법은 무엇인가요?
- A) null 체크를 수행합니다.
- B) null을 직접 할당합니다.
- C) null을 무시하고 계속 진행합니다.
- D) null 대신 빈 문자열을 사용합니다.
정답: A)
8. 자바에서 메모리 누수를 방지하기 위한 가장 효과적인 방법은 무엇인가요?
- A) finalize 메소드를 오버라이드합니다.
- B) try-with-resources 구문을 사용합니다.
- C) System.gc() 메소드를 호출합니다.
- D) 모든 객체를 null로 설정합니다.
정답: B)
9. 자바에서 멀티스레딩 환경에서 동기화를 보장하기 위해 사용하는 키워드는 무엇인가요?
- A) synchronized
- B) volatile
- C) final
- D) static
정답: A)
10. 자바에서 파일 입출력을 위해 사용하는 클래스 중 하나는 무엇인가요?
- A) FileReader
- B) FileWriter
- C) BufferedReader
- D) BufferedWriter
정답: B)
11. 객체지향 프로그래밍에서 "캡슐화"란 무엇인가요?
- A) 객체의 속성과 메소드를 외부로부터 감추는 것입니다.
- B) 객체의 속성과 메소드를 외부에 노출시키는 것입니다.
- C) 객체의 속성만 외부에 노출시키는 것입니다.
- D) 객체의 메소드만 외부에 노출시키는 것입니다.
정답: A)
12. 자바에서 "다형성"을 지원하는 방법 중 하나는 무엇인가요?
- A) 오버로딩
- B) 오버라이딩
- C) 상속
- D) 캡슐화
정답: B)
13. 객체지향 프로그래밍에서 "상속"은 무엇을 의미하나요?
- A) 부모 클래스의 속성과 메소드를 자식 클래스가 물려받는 것입니다.
- B) 자식 클래스의 속성과 메소드를 부모 클래스가 물려받는 것입니다.
- C) 부모 클래스와 자식 클래스가 서로 독립적으로 존재한다는 것입니다.
- D) 부모 클래스와 자식 클래스가 서로 관계가 없는 것을 의미한다.
정답: A)
14. 자바에서 "final" 키워드는 무엇을 의미하나요?
- A) 메소드를 수정할 수 없음을 의미합니다.
- B) 변수를 변경할 수 없음을 의미합니다.
- C) 클래스를 확장할 수 없음을 의미합니다.
- D) 메소드를 오버라이드할 수 없음을 의미합니다.
정답: B)
15. 객체지향 프로그래밍에서 "추상화"란 무엇인가요?
- A) 객체의 공통 속성과 메소드를 추출하여 일반화하는 것입니다.
- B) 객체의 구체적인 속성과 메소드를 숨기는 것입니다.
- C) 객체의 모든 속성과 메소드를 외부에 노출시키는 것입니다.
- D) 객체의 일부 속성과 메소드를 외부에 노출시키는 것입니다.
정답: A)
16. 객체지향 프로그래밍에서 "인캡슐레이션"은 _________ 을 의미합니다.
- A) 객체의 속성과 메소드를 외부로부터 보호하는 것
- B) 객체의 속성과 메소드를 외부에 노출시키는 것
- C) 객체의 속성만 외부에 노출시키는 것
- D) 객체의 메소드만 외부에 노출시키는 것
정답: A)
18. 자바에서 "오버로딩"은 _________ 을 의미합니다.
- A) 메소드의 이름이 같고 매개변수의 타입이 다른 경우
- B) 메소드의 이름이 같고 매개변수의 타입이 같은 경우
- C) 메소드의 이름이 다르고 매개변수의 타입이 같은 경우
- D) 메소드의 이름이 다르고 매개변수의 타입이 다른 경우
정답: A)
19. 자바에서 "static" 키워드는 _________ 을 의미합니다.
- A) 메소드가 객체 생성 없이 호출될 수 있음을 의미합니다.
- B) 변수나 메소드가 클래스 레벨에서 공유되어 모든 인스턴스에서 동일한 값을 가리키는 것을 의미합니다.
- C) 메소드가 오버라이드될 수 없음을 의미합니다.
- D) 변수나 메소드가 인스턴스 레벨에서만 사용될 수 있음을 의미합니다.
정답: B)
20. 다음 프로그램의 결과값은?
class A {
int a;
int b;
}
public class Main {
static void func1(A m) {
m.a *= 10;
}
static void func2(A m) {
m.a += m.b;
}
public static void main(String args[]) {
A m = new A();
m.a = 100;
func1(m);
m.b = m.a;
func2(m);
System.out.printf("%d", m.a);
}
}
정답: 2000
