티스토리 뷰

개발

java String 면접 질문

달리는개발자 2019. 3. 22. 23:30

Java String에 대해서 면접 볼 때 이렇게 많은 질문을 할 수 있다니...


1. 자바에서 String은 무슨 인가? 데이터 타입인가?

String은 int, long, double과 같은 primitive data type은 아니고 클래스 혹은 더 간단히 사용자 정의 타입이다.

java.lang 패키지에 정의되어 있고 내부에 character array에 저장되어 있다.(java9부터는 compact string과 관련해서 byte array로 저장됨)


2. 자바에서 String은 왜 final로 선언되어 있나?

String은 보안, 최적화, String pool 유지를 위해서 final로 선언되어 있다. 

public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {

immutable은 변하지 않기 때문에 thread간 공유 시에 lock이 필요없고, 중복된 값에 대해서 메모리에 하나만 저장하면 되기 때문에 공간 절약이 된다.


3. String과 StringBuffer의 차이가 무엇인가?

String vs StringBuffer vs StringBuilder 참고


4. C와 Java에서 String의 차이가 무엇인가?

C를 몰라서 이런 질문은 안 받을 것 같지만 C는 null로 끝나는 문자배열이고 자바에서 String은 객체이다.

Java의 String은 C보다 더 많은 기능이 있다.


5. 왜 비밀번호를 저장에 String보다 char array가 더 나을까?

이 글을 참고한다.


6. 자바에서 문자열 비교는 어떻게 하나?

1) String comparison using equals method

2) String comparison using equalsIgnoreCase method

2) String comparison using compareTo method (compareTo == 0으로 확인)

4) String comparison using compareToIgnoreCase method




참고

https://javarevisited.blogspot.com/2012/10/10-java-string-interview-question-answers-top.html

http://mindprod.com/jgloss/immutable.html

http://mindprod.com/jgloss/interned.html#GC

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함