Quiz
1. 다음 중 int 자료형의 크기는?
답 : c) 32비트
2. Java에서 소수점이 있는 실수형 데이터를 저장하기 위해 사용하는 자료형은?
답 : c) float
3. double 자료형과 float 자료형의 차이점은 무엇인가?
답 : b) double은 64비트, float은 32비트이다.
4. 다음 중 boolean 자료형이 가질 수 있는 값은?
답 : a) true와 false
5. 다음 중 boolean 값을 반환하는 메서드는?
답 : a) isEmpty()
6. 다음 중 boolean 표현식을 적절히 사용하는 경우는?
답 : b) boolean y = true;
7. 다음 중 문자열을 상수 풀(String Pool)에 저장하는 방법은?
답 : b) "example"
8. 다음 중 문자열 길이를 반환하는 메서드는?
답 : a) length()
9. 다음 코드의 출력 결과는 무엇인가?
String s1 = "Java";
String s2 = new String("Java");
System.out.println(s1 == s2);
답 : b) false
10. Java에서 배열의 길이를 얻기 위해 사용하는 속성은?
답 : c) length
11. 다음 중 Java에서 다차원 배열을 선언하는 올바른 문법은?
답 : b) int[][] arr = new int[2][2];
12. 배열에 초기값 없이 선언된 int 배열의 기본값은?
답 : a) 0 (int의 디폴트 값은 0이므로)
13. 배열의 인덱스는 몇부터 시작하는가?
답 : a) 0
14. 다음 코드의 출력 결과는?
int[] arr = {1, 2, 3, 4};
System.out.println(arr[2]);
답 : c) 3
15. Java에서 List 인터페이스를 구현한 클래스가 아닌 것은?
답 : c) HashSet
16. 다음 중 ArrayList의 기본적인 특징은 무엇인가?
답 : c) 임의 접근이 가능하다.
17. List에서 요소를 추가할 때 사용하는 메서드는?
답 : c) add()
18. 다음 코드의 출력 결과는 무엇인가?
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
System.out.println(list.get(1));
답 : b) Python
19. List의 요소를 반복하기 위해 사용할 수 있는 방법인 것은?
답 : d) 모두 맞음
서술형 문제
1. Java에서 기본 자료형(primitive types)과 참조 자료형(reference types)의 차이점에 대해 설명하시오.
답 : 기본자료형은 실제 값을 변수에 저장하고, 참조자료형은 데이터가 저장된 위치가 저장된다.
(String의 경우 리터럴 방식으로 저장할 경우 값 자체를 저장하는 것처럼 보이지만 실제로는 상수 풀에 저장하고 그 주소가 저장되어 참조자료형으로 구분됨)
2. 숫자형 자료형 간의 형 변환(예: int에서 double로 변환)이 발생할 때의 주의사항을 설명하시오.
답 : 형 변환이 자동으로 이루어지므로 소수점 이하 부분이 0으로 채워진다. 산술 연산 시 정수연산을 하고 double에 저장을 하게 될 경우 연산값은 정수연산을 한 값이 나온 후 형 변환이 되므로 이 점을 유의하여야 한다.
반대(double에서 int로 변환)의 경우 소수점 이하가 잘려 값이 변경되므로 주의하여야 한다.
3. Java에서 String 객체를 생성하는 두 가지 방법(리터럴 방식과 new 키워드 사용)의 차이점을 설명하시오.
답 : 리터럴 방식으로 저장할 경우 String Pool에 저장이 되지만 new키워드를 사용하면 새로운 객체를 생성하게 된다.
4. Java에서 문자열을 연결하는 방법 (String & StringBuilder)을 설명하고 어떤 방법이 성능 면에서 더 유리한 지 서술하시오.
답 : String은 += 을 통해 문자열을 연결하고, StringBuilder는 append메서드를 통해 연결한다.
첫번째 방법("+=")은 문자열을 추가 할 때마다 객체를 만드므로 성능면에서 비효율적이다.
5. Java에서 문자열 비교 시 == 연산자와 equals() 메서드의 차이점을 설명하시오.
답 : == 연산자는 객체의 주소값을 비교하고, equals() 메서드는 문자열의 실제 값을 비교한다. 쉽게 말해 ==연산자는 위에서 계속 말했듯이 문자열 상수 풀에서 같은 리터럴을 사용하였는지를 따지는 것이고, equals()메서드는 문자열의 생긴 모양이 같은지를 따지는 것이다.
6. 배열 선언 방법 2가지를 작성하시오.
답 : int[] numbers; --> int 타입의 배열 선언
int[] numbers = new int[3] --> 배열 선언 후 크기 지정
7. 배열의 크기를 변경할 수 없다는 특성을 설명하고, 이 문제를 해결하기 위해 사용할 수 있는 대안에 대해 설명하시오.
답 : 배열의 크기는 고정되어 있으므로 변경이 불가능하다. 동적배열인 ArrayList활용하면 add 메서드를 통해 추가, remove메서드를 통해 삭제가 가능하다.
코딩테스트 문제
숫자 비교하기 (난이도: 하)
https://school.programmers.co.kr/learn/courses/30/lessons/120807
문자열 내 p와 y의 개수 (난이도: 중하)
https://school.programmers.co.kr/learn/courses/30/lessons/12916
꿀팁
배열 정렬 방법
- Array 타입
int[] arr = {4,2,5,1,3}
Arrays.sort(arr);
- List container 타입
import java.util.*;
ArrayList<Integer> arr = new ArrayList<>();
arr.add(3);
arr.add(5);
arr.add(1);
Collections.sort(arr);
'Java' 카테고리의 다른 글
2주차 퀴즈(1) (0) | 2024.10.15 |
---|---|
[2024-2 Java 스터디] #2주차 (6) | 2024.10.15 |
[2024-2 Java 스터디] #1주차 (19) | 2024.10.09 |
[Java] String = " " VS new String(" ") (0) | 2024.10.07 |
[Java] 자바 연산자 (0) | 2024.10.07 |