본문 바로가기

Java

String 클래스

Q1. String str1 = new String("abc")와 String str2 = "test"의 차이점은 무엇인가?
A1. new String("abc")는 힙 메모리에 객체가 선언되고,
"test"는 상수 풀(constant pool)에 선언됩니다.

Q2. String 클래스는 어떤 char[]형 배열로 선언되어 있고,
그로 인해 생기는 결과는 무엇인가?
- String 클래스는 private final char[]형 배열로 선언되어 있습니다.
그로 인해 String 클래스는 불변(immutable) 클래스가 됩니다.

Q3. StringBuffer 클래스와 StringBuilder 클래스가 해결하는 문제는 무엇인가?
- String 클래스가 불변 클래스이기 때문에, 객체 끼리 값을 더할 때마다
메모리를 새로 할당해야 하고, 이로 인해 메모리 낭비가 발생합니다.
StringBuffer 클래스와 StringBuilder 클래스는 객체 끼리 값을 더할 때,
메모리를 새로 할당하지 않고 연산을 가능하게 합니다.

Q4. StringBuffer 클래스와 StringBuilder 클래스의 차이점은 무엇이고,
왜 그러한 차이가 발생하는가?
- StringBuffer 클래스는 스레드 안전하고, StringBuilder 클래스는 스레드 안전하지 않습니다.
따라서 여러 스레드가 접근한다면, StringBuffer 클래스를 사용하고,
좀 더 빠른 성능이 필요하다면, StringBuilder 클래스를 사용합니다.
이러한 차이가 발생하는 이유는 StringBuffer 클래스는 synchronized 키워드로 처리를 하였고,
StringBuilder 클래스는 처리를 하지 않았기 때문입니다.

Q5. CharSequence 인터페이스를 구현한 대표적인 클래스는 무엇이 있습니까?
-


Q6. '어떤' 관련 객체는 가장 많이 생성되는 객체 상위 5개 안에 포함되는가?
-


Q7. String 클래스는 '무엇'으로 선언되어 있는가?
-

Q8. String 클래스는 어떤 인터페이스들을 구현하는가?
-

Q9. StringBuilder와 StringBuffer 클래스도 '어떤' 인터페이스를 구현하는가?
-


Q10. 디코딩이란 무엇인가?
-


Q11. String 클래스에는 현재의 문자열 값을 '어떤' 배열로 변환하는 메소드들이 있는가?
-


Q12. 한글을 처리하기 위해서 자바에서 많이 사용하는 캐릭터 셋은 무엇인가?
-


Q13. 예전에는 어떤 캐릭터 셋을 많이 사용했지만, 지금은 어떤 캐릭터 셋을 많이 사용하는가?
-


Q14. UCS란 무엇인가?
-


Q15. UTF-8이란 무엇인가?
-


Q16. UTF-16이란 무엇인가?
-


Q17. EUC-KR은 한글 두 글자를 표현하기 위해
몇 바이트를 사용하는가?
-

Q18. UTF-16은 한글 두 글자를 표현하기 위해
몇 바이트를 사용하는가?
-

Q19. UCS 변환 포맷을 사용할때는,
무엇으로 감싸주어야 하는가?
그 이유는 무엇인가?
-


Q20. String뿐만이 아니라 모든 객체를 처리할 때에는 무엇을 반드시 해야만 하는가?
-

Q21. Null인 객체의 메소드에 접근하면 무엇이 발생하는가?
-

Q22. 널 체크를 하지 않아서 무슨 일이 발생할 수 있는가?
-

Q23. 문자열의 길이를 확인하는 메소드는 무엇인가?
-

Q24. 문자열이 비어 있는지 확인하는 메소드는 무엇인가?
-

Q25. 문자열이 같은지 비교하는 메소드에는
무엇이 있는가?
-

Q26. String 클래스도 기본적으로 == 비교가 아닌 무슨 메소드를 사용해서 비교해야하는가?
-

Q27. String의 경우, 동일한 값을 갖는 객체가 있으면
어떻게 하는가? 그것이 가능한 이유는 무엇인가?
-

Q28. compareTo() 메소드는 보통 무엇을 할 때
사용하는가?
-


Q29. startsWith() 메소드는 어떤 기능을 하는가?
-

Q30. contains() 메소드는  어떤 기능을 하는가?
-

Q31. matches() 메소드는 어떤 기능을 하는가?
-

Q32. 정규표현식이란 무엇인가?
-


Q33. indexOf() 메소드의 기능은 무엇인가?
-

Q34. lastIndexOf() 메소드의 기능은 무엇인가?
-






참고
- Do it 자바 프로그래밍 입문(Q1~Q4)
- Q1~Q4 5/13
- Q5 자바의 신 5/22
- Q6~Q34 자바의 신 6/14
- A1~A4 5/14

'Java' 카테고리의 다른 글

제네릭 프로그래밍  (0) 2022.05.20
Wrapper 클래스  (0) 2022.05.20
equals()와 hashcode()  (0) 2022.05.20
비트 연산자  (0) 2022.05.20
JVM  (0) 2022.05.20