-
주니어 개발자를 위한 100가지 질문(답변 포함) - 1언어/JSP 2023. 10. 26. 19:30728x90반응형
1️⃣ 기초
📌 JDK와 JRE의 차이점은 무엇입니까?
JDK(Java Development Kit)는 자바를 개발하기 위한 도구 모음입니다. 컴파일러, 라이브러리, 도큐먼트 등이 포함되어 있습니다. 반면에 JRE(Java Runtime Environment)는 자바 프로그램을 실행하기 위한 환경을 제공합니다. JVM과 필요한 라이브러리들을 포함하고 있습니다.
📌 ==와 equals의 차이점은 무엇입니까?
'==' 연산자는 두 변수의 참조값(메모리 주소)이 같은지를 확인합니다. equals 메서드는 두 객체의 내용이 같은지를 확인합니다. 즉, '=='은 물리적 동일성을, equals는 논리적 동일성을 비교합니다.
📌 두 객체가 동일한 hashCode를 가지면 Equals()가 참이어야 합니다, 그렇죠?
아니오, 반드시 그런 것은 아닙니다. hashCode()의 결과가 같다고 해서 두 객체가 동일하다는 것을 보장하지는 않습니다. hashCode()는 객체를 구분하기 위한 하나의 지표일 뿐, 실제 객체의 동일성은 equals() 메서드로 판단해야 합니다.
📌 자바에서 final의 기능은 무엇입니까?
자바에서 'final'은 한 번 할당되면 변경이 불가능하다는 것을 의미합니다. 변수에 사용될 경우 해당 변수는 상수가 되며, 메서드에 사용될 경우 오버라이딩이 불가능하게 됩니다. 또한 클래스에 사용될 경우 해당 클래스는 상속이 불가능해집니다.
📌 자바에서 Math.round(-1.5)는 무엇을 의미합니까?
Math.round 메서드는 가장 가까운 정수로 반올림합니다. 하지만 자바에서는 반올림할 때 0.5의 경우에는 가장 가까운 큰수로 반올림하므로, Math.round(-1.5)의 결과는 -1이 됩니다.
📌 String은 기본 데이터 타입입니까?
아니요, String은 기본 데이터 타입이 아닌 참조 타입입니다. 기본 데이터 타입에는 byte, short, int, long, float, double, char, boolean이 있습니다.
📌 자바에서 문자열을 조작하는 클래스는 무엇이 있습니까?
각 클래스의 차이점은 뭘까요? 자바에서 문자열을 조작하는 클래스로는 String, StringBuilder, StringBuffer가 있습니다. String은 불변(immutable)하므로 문자열 조작이 빈번하게 일어나는 경우 성능 저하가 발생할 수 있습니다. StringBuilder와 StringBuffer는 가변(mutable)하므로 문자열 조작에 효율적입니다. 둘의 차이는, StringBuilder는 동기화를 지원하지 않아 멀티 스레드 환경에서 안전하지 않지만, StringBuffer는 동기화를 지원하여 멀티 스레드 환경에서도 안전합니다.
📌 String str ="i"와 String str = new String("i")가 동일합니까?
두 코드는 서로 다르게 동작합니다. String str = "i"는 문자열 리터럴을 사용하여 str이 "i"라는 값을 가진 문자열을 참조하게 합니다. 이 경우, 동일한 문자열 리터럴은 모두 같은 객체를 참조합니다. 반면, String str = new String("i")는 새로운 String 객체를 생성하고, 이 객체는 "i"라는 값을 가지며, 이 경우에는 새로운 문자열이 생성될 때마다 새로운 객체가 생성됩니다.
📌 문자열을 반전시키는 가장 좋은 방법은 무엇인가요?
StringBuilder 또는 StringBuffer 클래스의 reverse() 메서드를 사용하는 것이 가장 효율적인 방법입니다.
📌 String 클래스의 일반적인 메서드는 무엇이 있나요?
String 클래스에는 문자열 길이를 반환하는 length(), 특정 위치의 문자를 반환하는 charAt(), 문자열을 잘라내는 substring(), 문자열을 분리하는 split(), 문자열을 대치하는 replace(), 문자열을 비교하는 equals() 등 다양한 메서드가 있습니다.
📌 추상 클래스에서 추상 메서드는 필수적인가요?
아니요, 반드시 있어야 하는 것은 아닙니다. 추상 클래스는 추상 메서드를 가질 수도 있고, 가지지 않을 수도 있습니다. 하지만 추상 메서드가 한 개라도 있는 클래스는 반드시 추상 클래스로 선언해야 합니다.
📌 보통의 클래스와 추상 클래스의 차이는 무엇인가요?
보통의 클래스는 그 자체로 객체를 생성할 수 있지만, 추상 클래스는 그 자체로 객체를 생성할 수 없습니다. 추상 클래스는 상속을 통해 자식 클래스에서 구현되어야 합니다.
📌 final은 추상 클래스를 수정할 때 사용할 수 있나요?
아니요, final과 abstract는 서로 배타적인 키워드입니다. final 클래스는 상속이 불가능하므로, 추상 메서드를 가질 수 없습니다. 반면, 추상 클래스는 상속을 통해 자식 클래스에서 구현되어야 하므로, final로 선언될 수 없습니다.
728x90반응형'언어 > JSP' 카테고리의 다른 글
주니어 개발자를 위한 100가지 질문(답변 포함) - 6 (1) 2023.10.30 주니어 개발자를 위한 100가지 질문(답변 포함) - 5 (0) 2023.10.29 주니어 개발자를 위한 100가지 질문(답변 포함) - 4 (0) 2023.10.28 주니어 개발자를 위한 100가지 질문(답변 포함) - 3 (0) 2023.10.27 주니어 개발자를 위한 100가지 질문(답변 포함) - 2 (2) 2023.10.26