본문 바로가기
Java

[JAVA/자바]String class,equals 메소드와 == 연산자의 차이

by hans-j 2022. 12. 14.

equals : 객체끼리 비교하는 메소드

==  : 비교를 위한 연산자


String class

자바에서 문자열은 쌍 따옴표 " "로 감싸면 된다.

자바에서 문자열을 저장하는 기본 자료형 (Data Type은 없다.)

문자열은 여러가지 조작을 할 수 있기 때문에 별도의 클래스로 자료형 (java.lang.String)을 만들어 두었다.

따라서 자바에서 문자열은 책, 영화, 회원 처럼 객체로 취급된다.


문자열 생성방법


new로 생성 -> Heap area(객체가 생성되는 메모리영역)에 저장됨 // 새로운 객체를 선언하는 것과 같음.

String str1 = new String("APPLE");
String str2 = new String("APPLE");

저장하는 문자열은 같지만!! 번지가 서로 다름

 서로 같은 것을 가리키고 있는지를 따져서 같은 값인지 다른값인지 구별이 가능하다.

new로 생성하면 ==으로 비교하면 안되고 equals로 해야함.


문자열 상수로 생성 -> Literal Pool(문자열 상수(객체)가 생성되는 메모리영역(재활용 가능))

String str1 = ("APPLE");
String str2 = ("APPLE");

서로 같은 번지를 가리킴

하지만 상수로 생성한 문자열이어도 ==보다는 equals로 문자열을 비교하는게 좋다.
왜냐하면 euqals와 ==로 비교를 하면 출력 값이 다르기 때문에, 통일하는 것이 좋음.


공부하는데 도움 많이 된 블로그!!

https://kmj1107.tistory.com/207

 

[JAVA] 문자열(string) 비교 equals와 == 의 차이점 ( + equals의 반대)

equals와 == 은 어떤 차이점이 있을까요. 기본적으로 이 둘은 모두 양 쪽에 있는 내용을 비교한 값을 boolean type으로 반환한다는 공통점을 가집니다.하지만 차이점이 분명 존재합니당. 1) 형태의 차

kmj1107.tistory.com


**인프런 강의 'Java TPC(생각하고, 표현하고, 코딩하고 / 박매일 강사님)'를 듣고 작성 및 발췌 했습니다.

'Java' 카테고리의 다른 글

[JAVA/자바]Array, Arraylist 차이 -스크랩  (0) 2022.12.15
[JAVA/자바]toString 실습  (0) 2022.12.15
[JAVA/자바]API  (0) 2022.12.14
[JAVA/자바]패키지/package  (0) 2022.12.14
[JAVA/자바]함수와 메서드의 개념 및 차이-스크랩  (0) 2022.12.14