자바의 신 - 정리해 봅시다의 각 챕터별 정답
자바의 신 19장은 별도로 정리해 봅시다 파트가 수록되어 있지 않습니다.
1. 자바 패키지 중 같은 패키지에 있는 클래스를 제외하고 별도로 import하지 않아도 되는 해키지는 무엇인가요?
2. 자바의 메모리가 부족해서 발생하는 에러는 무엇인가요?
3. 메소드 호출 관계가 너무 많아서 발생하는 에러는 무엇인가요?
4. java.lang 패키지에 선언되어 있는 3개의 어노테이션에는 어떤 것들이 있고, 각각의 역할은 무엇인가요?
5. Double과 Integer 같은 숫자 타입에서 처리할 수 있는 최대, 최소값을 알 수 있는 상수의 이름은 무엇인가요?
6. Integer 값을 2진법으로 표현하려면 어떤 메소드를 사용해야 하나요?
7. Integer 값을 16진법으로 표현하려면 어떤 메소드를 사용해야 하나요?
8. 속성(Properties)과 환경(Environments) 값의 차이는 무엇인가요?
9. System.out과 System.err에서 사용할 수 있는 메소드들을 확인하려면 어떤 클래스를 찾아봐야 하나요?
10. System 클래스에서 현재 시간을 조회하는 용도로 사용하는 메소드의 이름은 무엇인가요?
11. System 클래스에서 시간 측정 용도로 사용하는 메소드 이름은 무엇인가요?
12. System.out.print() 메소드와 System.out.println() 메소드의 차이는 무엇인가요?
13. System.out.println() 메소드에 객체가 매개 변수로 넘어 왔을 때 String의 어떤 메소드가 호출되어 결과를 출력하나요? 그리고, 그 메소드를 사용하는 이유는 무엇인가요?
1. 제네릭이 자바에 추가된 이유는 무엇인가요?
2. 제네릭 타입의 이름은 T나 E처럼 하나의 캐릭터로 선언되어야 하나요?
3. 메소드에서 제네릭 타입을 명시적으로 지정하기 애매할 경우에는 <>안에 어떤 기호를 넣어 주어야 하나요?
4. 메소드에서 제네릭 타입을 명시적으로 지정하기에는 애매하지만, 어떤 클래스의 상속을 받은 특정 타입만 가능하다는 것을 나타내려면 <>안에 어떤 기호를 넣어 주어야 하나요?
5. 제네릭 선언시 wildcard라는 것을 선언했을 때 어떤 제약 사항이 있나요?
6. 메소드를 제네릭하게 선언하려면 리턴 타입 앞에 어떤 것을 추가해주면 되나요?
1. Collection 인터페이스를 구현하는 대표적인 3개의 자료 구조에는 어떤 것들이 있나요?
2. 배열과 같이 순서가 있는 목록형을 나타내는 대표 인터페이스는 무엇인가요?
3. ArrayList라는 클래스의 생성자 중 매개 변수가 없는 기본 생성자를 사용하면 기본적으로 몇 개의 저장 공간을 가지나요?
4. 만약 ArrayList 클래스의 저장 공간 개수를 처음부터 지정하려면 어떤 생성자를 사용하면 되나요?
ArrayList(int initialCapacity) {
}
5. ArrayList 객체를 생성할 때 제네릭을 사용하는 이유는 무엇인가요?
6. ArrayList에 데이터를 담는 메소드 이름 두 가지는 무엇인가요?
7. Collection 인터페이스를 구현한 클래스의 객체에서 사용할 수 있는 for 루프의 구조는 어떻게 되나요?
for(타입이름 임시변수명 : 반복대상객체) {
}
8. Colletion 인터페이스를 구현한 클래스의 객체 크기를 확인하는 메소드 이름은 무엇인가요?
9. ArrayList에서 특정 위치에 있는 데이터를 확인하는 메소드는 무엇인가요?
10. ArrayList에서 특정 위치에 있는 데이터를 삭제하는 메소드는 무엇인가요?
11. ArrayList에서 특정 위치에 있는 데이터를 수정하는 메소드는 무엇인가요?
12. java.util 패키지에 있는 Stack이라는 클래스는 어떤 클래스를 확장한 것인가요?
13. Stack 클래스에서 데이터를 담는 메소드는 무엇인가요?
14. Stack 클래스에서 가장 위에 있는 데이터를 확인만 하는 메소드는 무엇인가요?
15. Stack 클래스에서 가장 위에 있는 데이터를 삭제하고 리턴하는 메소드는 무엇인가요?
1. 순서와 상관 없는 여러 데이터를 하나의 객체에 저장할 때 사용하는 Collection의 하위 인터페이스는 무엇인가요?
2. HashSet 클래스는 생성자를 통하여 저장 가능한 데이터의 초기 크기를 지정할 수 있나요?
3. HasgSet 클래스의 객체에 데이터를 추가하는 메소드는 무엇인가요?
4. HashSet 클래스의 객체에 어떤 데이터가 존재하는지 확인하는 메소드는 무엇인가요?
5. HashSet 클래스의 객체에 어떤 데이터를 삭제하는 메소드는 무엇인가요?
6. Queue는 FIFO를 처리하기 위한 클래스들의 인터페이스입니다. FIFO는 무슨 단어의 약자인가요?
7. Deque는 무슨 단어의 약어이며, 용도는 무엇인가요?
8. LinkedList(연결 리스트) 클래스의 특징을 이야기해 봅시다.
1. Map 형태의 자료 구조는 무엇과 무엇으로 구성되어 있나요?
2. Map에서 데이터를 저장하는 메소드는 무엇인가요?
3. Map에서 특정 키에 할당된 값을 가져오는 메소드는 무엇인가요?
4. Map에서 특정 키와 관련된 키와 데이터를 지우는 메소드는 무엇인가요?
5. Map에서 키의 목록을 가져오는 메소드는 무엇인가요?
6. Map에 저장되어 있는 데이터의 크기를 가져오는 메소드는 무엇인가요?
7. HashMap과 Hashtable 중에서 키 또는 값에 null을 저장할 수 있는 것은 무엇인가요?
8. HashMap과 Hashtable 중에서 여러 쓰레드에서 동시에 접근해도 문제가 없는 것은 무엇인가요?
9. HashMap에서 특정 키가 존재하는지 확인하는 메소드는 무엇인가요?
10. 이 장에서 살펴본 클래스 중, 키가 저장되면서 정렬되는 Map에는 어떤 것이 있나요?
11. Properties 클래스는 어떤 클래스를 확장한 것인가요?
12. Properties 클래스의 객체에 있는 데이터를 파일로 저장할 때에는 어떤 메소드들을 사용하면 되나요?
1. 쓰레드와 프로세스의 차이를 이야기해 보세요.
2. 여러분들이 쓰레드 클래스를 만들기 위해서는 어떤 인터페이스를 구현하면 될까요?
3. 2에서 이야기한 인터페이스에 선언되어 있는 유일한 메소드는 무엇인가요?
4. 쓰레드 클래스를 만들기 위해서 어떤 클래스를 확장하면 되나요?
5. 쓰레드가 시작되는 메소드의 이름은 무엇인가요?
6. 쓰레드를 시작하는 메소드의 이름은 무엇인가요?
7. 쓰레드에 선언되어 있는 sleep() 메소드의 역할은 무엇인가요?
8. sleep() 메소드를 사용할 때에는 try-catch로 감싸 주어 예외를 처리해 주어야 하는데, 그 이유는 무엇인가요?
9. 데몬(Daemon) 쓰레드와 일반 쓰레드의 차이는 무엇인가요?
10. synchronized 구문은 왜 써주며, 어디에 사용해야 하나요?
public synchronized void plus(int value) {
amount+=value;
11. synchronized를 사용하는 두 가지 방법은 어떤 것인가요?
12. 쓰레드의 상태에는 어떤 것들이 있나요?
13. 쓰레드에 선언되어 있는 join() 메소드의 용도는 무엇인가요?
14. 쓰레드에 선언되어 있는 interrupt() 메소드의 용도는 무엇인가요?
15. interrupt() 메소드를 호출하면 해당 쓰레드는 어떤 상태에 있을 때 interrupt() 메소드가 호출된 효과가 발생되나요?
16. Object 클래스에 선언된 wait() 메소드의 용도는 무엇인가요?
17. ThreadGroup 클래스에 선언된 enumerate() 메소드의 용도는 무엇인가요?
1. I/O는 각각 무엇의 약자인가요?
2. File 클래스는 파일만 지정할 수 있나요?
3. OS마다 다른 경로 구분자를 처리하기 위해서는 File 클래스의 어떤 상수를 사용해야 하나요?
4. File 클래스에서 디렉터리를 만드는 mkdir()과 mkdirs() 메소드의 차이는 무엇인가요?
5. File 클래스의 list() 메소드와 listFiles() 메소드의 차이는 무엇인가요?
6. FileFilter와 FilenameFilter의 차이는 무엇인가요?
7. InputStream이라는 abstract 클래스는 어떤 작업을 하기 위해서 만들어진 것인가요?
8. OutputStream이라는 abstrack 클래스는 어떤 작업을 하기 위해서 만들어진 것인가요?
9. Reader라는 abstract 클래스는 어떤 작업을 하기 위해서 만들어진 것인가요?
10. Writer라는 abstract 클래스는 어떤 작업을 하기 위해서 만들어진 것인가요?
11. BufferedReader나 BufferedWriter를 사용하는 이유는 무엇인가요?
12. 파일을 읽고, 문자열을 처리하기 위해서 필요한 Scanner 클래스가 속해있는 패키지는 무엇인가요?
1. java.io.Serializable을 import하는 이유는 무엇인가요?
즉, Serializable 인터페이스를 구현하여 직렬화 및 역직렬화를 위해서이다.
2. java.io.Serializable의 serialVersionUID를 지정하는 이유는 무엇인가요?
3. 자바에서 객체를 파일로 읽거나 쓸 때 사용하는 Stream 클래스 이름은 무엇인가요?
4. transient 예약어의 용도는 무엇인가요?
5. NIO가 생긴 이유는 무엇인가요?
6. NIO에서 Channel의 용도는 무엇인가요?
7. NIO에서 Buffer의 용도는 무엇인가요?
8. NIO에서 Buffer의 상태를 확인하기 위한 메소드들에는 어떤 것들이 있나요?
capacity() : 버퍼에 담을 수 있는 크기 리턴
limit() : 버퍼에서 읽거나 쓸 수 없는 첫 위치 리턴
position() : 현재 버퍼의 위치 리턴
9. NIO에서 Buffer의 position을 변경하기 위한 메소드들에는 어떤 것들이 있나요?