JAVA TEST
1. 서술형
자바의 기본 데이터 타입과 참조 데이터 타입의 차이를 서술하시오.
의미, 종류, 저장되는 것, 예시(변수 1개)
- 기본 데이터 타입(Primitive Type)
- 참조 데이터 타입(Reference Type)
2. 코드 구현 문제
다음 요구사항을 만족하는 코드를 작성하세요.
3. 코드 구현 문제
다음 요구사항을 만족하는 코드를 작성하세요.
4. 코드 구현 문제
for-each 반복문을 사용하여 배열 요소를 출력할 때 적합한 코드를 작성하세요.
int[] numbers = {1, 2, 3, 4, 5};
// 정답 작성 //
for
5. 코드 구현 문제
다음 요구사항을 만족하는 코드를 작성하세요.
6. 단답형
자바에서 모든 클래스의 최상위 부모 클래스는 무엇입니까?
정답: __________
7. 단답형
ArrayList와 같은 컬렉션에서 요소의 개수를 반환하는 메서드는 무엇입니까?
정답: __________
8. 단답형
자바에서 if-else 문 대신 간결하게 조건에 따라 값을 반환할 수 있는 연산자는 무엇입니까?
정답: __________
9. 다음 중 인터페이스에서 사용할 수 없는 것은 무엇입니까?
- default 메서드
- 정적 메서드
- private 메서드
- 생성자
정답: __________
10. 다음 중 @FunctionalInterface에 해당하는 조건으로 올바른 것은 무엇입니까?
- 여러 개의 추상 메서드 포함 가능
- 반드시 하나의 추상 메서드 포함
- default 메서드를 포함할 수 없음
- 정적 메서드만 포함 가능
정답: __________
11: 다음 코드에서 출력 결과는 무엇입니까?
class Parent {
void display() {
System.out.println("Parent");
}
}
class Child extends Parent {
void display() {
System.out.println("Child");
}
}
public class Main {
public static void main(String[] args) {
Parent obj = new Child();
obj.display();
}
}
12: 싱글톤 패턴을 구현할 때 가장 일반적으로 사용되는 메서드는 무엇입니까?
- public static
- private static
- protected static
- default static
정답: __________
13: 추상 클래스
추상 클래스는 객체를 생성할 수 있습니까?
- 예
- 아니요
14: 다운 캐스팅
다음 코드에서 다운 캐스팅이 성공하려면 어떤 조건이 필요합니까?
Animal animal = new Dog();
Dog dog = (Dog) animal;
정답: __________
15: 빌더 패턴의 주요 이점은 무엇입니까?
- 상속 관계에서 객체를 더 쉽게 생성할 수 있다.
- 객체 생성 시 복잡한 생성자 호출을 피할 수 있다.
- 동시성 처리를 쉽게 한다.
- 객체의 메모리 사용을 줄인다.
정답: __________
16: MVC 패턴에서 사용자의 입력을 처리하는 역할은 무엇입니까?
- Model
- View
- Controller
정답: __________
17: 인터페이스의 모든 메서드는 기본적으로 어떤 접근 제어자를 가집니까?
정답: __________
18: 추상 클래스와 인터페이스의 주요 차이점 중 맞지 않는 것은 무엇입니까?
- 추상 클래스는 생성자를 가질 수 있다.
- 인터페이스는 다중 상속을 지원한다.
- 인터페이스는 필드를 가질 수 없다.
- 추상 클래스는 정적 메서드를 가질 수 없다.
정답: __________
오늘은 국비 수업중 쪽지 시험을 봤는데
위의 문제들을 풀고 틀린문제를 체크 후
오답노트를 작성하는 포스팅입니다!
답안지
package test;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import lombok.Getter;
// 5번 코드구현 문제 클래스 Student
@Getter
class Student {
String name; // 이름
int score; // 점수
Student(String name, int score) {
this.name = name;
this.score = score;
}
}
public class JavaTest_전창현 {
public static void main(String[] args) {
// 1. 서술형
// - 기본 데이터 타입:
// 의미: 변수 선언 시 해당 자료형의 크기만큼 메모리 할당
// 종류: byte, short, long, float, int, char, boolean, double
// 저장되는 것: 실제 데이터 값
// 예시: int num = 10;
// - 참조 데이터 타입:
// 의미: 객체의 참조를 저장하는 타입
// 종류: String, 객체, 배열, 인터페이스, 클래스
// 저장되는 것: 해당 객체의 메모리 주소 값
// 예시: String name = "전창현";
// 2. 코드 구현 문제
int num1 = 10;
double num2 = 3.5;
double result = num1 + num2;
System.out.println(result);
// 3. 코드 구현 문제
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
if (input % 2 == 0) {
System.out.println("입력하신 숫자는 짝수입니다.");
} else {
System.out.println("입력하신 숫자는 홀수입니다.");
}
// 4. 코드 구현 문제
int[] numbers = { 1, 2, 3, 4, 5 };
for (int n : numbers) {
System.out.println(n);
}
// 5. 코드 구현 문제 - 배열이랑 리스트를 구분할 줄 알아야하는데 이 방법밖에 생각이 안납니다 추가로 공부해야할 것 같아요
List<Student> st = Arrays.asList(new Student("John", 85)
, new Student("Jane", 92)
, new Student("Tom", 78)
, new Student("Emily", 88)
, new Student("Alex", 95));
for (Student student : st) {
if (student.getScore() >= 90) {
System.out.println(student.getName());
}
}
// 6. 단답형
// Object
// 7. 단답형
// .size()
// 8. 단답형
// 삼항 연산자 ? (참):(거짓)
// 9. 4번 생성자는 인터페이스에서 사용할 수 없습니다
// 10. 2번 단 하나의 추상 메서드를 포함합니다.
// 11. Child
// 12. 2번 private static
// 13. 2번 아니요
// 14. 상속관계가 명확한지...? * 다운캐스팅 추가 공부 필요
// 15. 2번 메서드체이닝 비슷한걸로 알고있습니다.
// 16. 3번
// 17. public
// 18. 4번 추상 클래스는 정적메서드를 가질수있습니다 정적메서드 (static 메서드)
}
}
틀린 문제.
3번(답은 제대로 나오지만 sc.close(); 빼먹음)
5번 ([배열]문제 -> List로 품)
12번 (싱글톤의 정확한 개념 파악 필요)
14번 (다운캐스팅 검사에 대한 설명이 부족)
15번 (빌더의 정확한 개념 파악 필요)
오답노트.
5번
- 해당 문제에서는 배열을 이용해서 코딩을 해야한다
Student[] st = {new Student("John", 85)
, new Student("Jane", 92)
, new Student("Tom", 78)
, new Student("Emily", 88)
, new Student("Alex", 95)};
for (Student student : st) {
if (student.getScore() >= 90) {
System.out.println(student.getName());
}
}
처음에 Student[ ] st = 으로 시작은 했는데
중괄호({ }) 를 쓰지 않고 시도하다가 실패한 케이스..
클래스명[ ] 배열명 = {new 클래스명(), new 클래스명()};
12번
- 싱글톤 패턴의 클래스를 외부에서 접근하기 위해선 메서드는 public static 이어야한다.
class Singleton {
// 필드값: static - 인스턴스화 없이 호출 가능 & 자원이 하나의 값을 가짐
private static Singleton instance;
// 생성자: private
// - 외부에서 직접적인 인스턴스화 불가
private Singleton() {};
// 싱글톤 패턴의 전역 접근성을 제공하는 메서드 정의 (인스턴스화 담당)
public static Singleton getInstance() {
// 주로 getInstance 메서드명을 사용
if (instance == null) {
// 필드에 초기화 이전 >> 아직 인스턴스화 X
instance = new Singleton(); // 인스턴스를 진행
}
return instance;
// 1) if 조건문이 true라면 인스턴스화 된 객체를 반환
// 2) if 조건문이 false라면 기존의 필드에 객체를 반환
// >> 객체는 반드시 단 하나!!
}
}
14번
- 정답은 맞지만 정확한 검증을 위해선 instanceof 를 사용해서 안전한 다운캐스팅 하기
15번
- 메서드 체이닝 비슷한게 아니라 메서드 체이닝 방식을 사용하는 것!
- 가독성을 높이는 효과가 있음
- 일반적으로 내부 클래스를 활용해 메서드체이닝 방식을 사용함!
소감.
이해하고 있다 생각했던 부분들중에도
놓친 부분들이 많았습니다.
꼼꼼히 살펴보면서 복습하는 것이 중요할 것 같아요!
'IT > JAVA' 카테고리의 다른 글
[JAVA] 자바 기초 복습 (Chapter.07) part2 (0) | 2025.02.28 |
---|---|
[JAVA] 자바 기초 복습 (Chapter.07) part1 (0) | 2025.02.27 |
[JAVA] 자바 기초 복습 (Chapter.06) (0) | 2025.02.25 |
[JAVA] 자바 MacBook에서 Lombok 설치 & 설정 하기 (0) | 2025.02.25 |
[JAVA] 자바 패키지별 연습 문제 part 1 (0) | 2025.02.24 |