Search

[JAVA] 자바 100가지 질문

Tags
Date

기초

JDK와 JRE의 차이점은 무엇입니까?
JDK는 자바 프로그램을 개발하기 위한 소프트웨어 키트이며, JRE는 자바 프로그램을 실행하기 위한 환경입니다.
==와 equals의 차이점은 무엇입니까?
== 는 값을 비교하며 eqauls는 참조 값을 비교합니다.
두 객체가 동일한 hashCode를 가지면 Equals()가 참이어야 합니다, 그렇죠?
네 맞습니다.
자바에서 final의 기능은 무엇입니까?
자바에서 Math.round(-1.5)는 무엇을 의미합니까?
String은 기본 데이터 타입입니까?
String은 객체 타입입니다.
자바에서 문자열을 조작하는 클래스는 무엇이 있습니까? 각 클래스의 차이점은 뭘까요?
String, StringBuilder, StringBuffer 등이 존재합니다. String은 불변 객체, StringBuilder와 StringBuffer는 가변객체 입니다. 기존의 문자열을 변경합니다.
String str ="i"와 String str = new String("i")가 동일합니까?
둘다 “i” 라는 값을 가지는 문자열이지만, String str = “i” 는 문자열 풀에, new String(”i”)는 새로운 개체를 힙 메모리에 생성합니다.
문자열을 반전시키는 가장 좋은 방법은 무엇인가요?
StringBuilder나 StringBuffer의 reverse()를 이용하는 것입니다.
String 클래스의 일반적인 메서드는 무엇이 있나요? 추상 클래스에서 추상 메서드는 필수적인가요? 보통의 클래스와 추상 클래스의 차이는 무엇인가요? final은 추상 클래스를 수정할 때 사용할 수 있나요?
Container
자바 컨테이너란 무엇인가요? Collection과 Collections의 차이는 무엇인가요? List, Set, Map의 차이점을 말해주세요. HashMap과 Hashtable의 차이는 무엇인가요? 각각 어떤 상황에서 HashMap과 TreeMap을 선택하나요? HashMap 구현 원칙은 무엇인가요? HashSet 구현 원칙은 무엇인가요? ArrayList와 LinkedList의 차이점은 무엇인가요? Array에서 List로 전환하려면 어떻게 해야하나요? ArrayList와 Vector의 차이점을 말해주세요. Array와 ArrayList의 차이점을 말해주세요. Queue에서, poll()과 remove()의 차이는 무엇인가요? thread-safe한 컬렉션 클래스들은 무엇이 있을까요? iterator란 무엇인가요? iterator의 사용 목적은 무엇인가요? 어떤 특징이 있죠? iterator와 listIterator의 차이는 무엇인가요?
multi-threading
병렬과 동시성의 차이점을 말해주세요. 스레드와 프로세스의 차이를 말해주세요.. 데몬 스레드는 무엇인가요? 스레드를 만드는 방법을 나열해주세요. runnable과 callable의 차이는 무엇인가요? 스레드의 여러가지 상태에 대해 말해주세요. sleep()과 wait()의 차이는 무엇인가요? notify()와 notifyAll()의 차이는 무엇인가요? thread run()과 tnread start()의 차이는 무엇인가요? 스레드 풀을 생성할 수 있는 여러가지 방법을 말해주세요. 스레드 풀의 상태에 대해 말해주세요. 스레드 풀에서 submit()과 execute()의 차이는 무엇인가요? 자바 프로그램에서 멀티 스레드 작업의 안전성을 어떻게 보장할 수 있을까요?
reflection
reflection이란 무엇인가요? 자바 직렬화란 무엇인가요? 어떤 상황에서 필요한가요? 동적 프록시란 무엇인가요? 동적 프록시는 어떻게 사용하나요?
object copy
복사가 사용되는 이유는 무엇인가요? 객체 복사는 어떻게 할 수 있나요? 깊은 복사와 얕은 복사의 차이를 말해주세요.