본문 바로가기

언어/JAVA

[Java] String과 char 차이점

반응형

자바에서 정수를 표현할 때는 byte, short, int, long 등을 사용한다. 

실수는 float, double을 사용한다.

문자는 char과 string이 있다.

 

얼핏 보면 char과 string은 헷갈릴 수 있으나, 명확한 차이점이 있다.

 

차이점은 크게 2가지다. 글자수와 내용물의 차이이다.

char은 내용물이 1개의 문자로 제한되지만, string은 제한없이 문자를 담을 수 있다.

char은 해당 변수 안에 값을 직접적으로 가지고 있고, 해당 값이 있는 좌표를 가지고 있지 않는다.

그에 반해 String은 클래스 타입의 변수이기 때문에 생성 시 해당 변수 안에 값을 가지는 것이 아니라 임의로 만들어진 값이 들어있는 위치의 좌표를 내용물로 가진다.

 

예를 들어, char a = 'a' 일 때 변수 안에는 a라는 값이 있지만, 

String b = 'b' 일 때 변수 안에는 'b'의 값이 아니라 'b'라는 텍스트가 위치한 좌표를 가진다.

 

이 차이점에서 발생하는 것은 ==의 사용 여부인데, char 은 값이 존재하니 ==를 사용할 수 있지만, String은 값이 같더라도 String 생성시 마다 서로 다른 좌표가 생성되어서 ==를 사용하면 같지 않다는 결과가 나온다.

해결책으로 .equals()를 이용하여 String의 내용물이 같은지 확인하여 파악한다.

 

반응형