본문 바로가기
개발/자바 웹 개발

[자바 웹 개발] String 타입의 문자열 비교

by 겜더지 2024. 4. 21.

String 타입 문자열 비교 예제 (배경: 이젠아카데미컴퓨터학원 종로캠퍼스)

본 포스팅은 '이젠아카데미컴퓨터학원 종로캠퍼스'에서 진행한 윤대명 선생님의 강의를 듣고 공부한 내용을 정리한 것입니다.

*참고 자료: 신용권, 『이것이 자바다』, 한빛미디어(주), 2015.

자바 Java 기본서 사러 가기

 

이것이 자바다

COUPANG

www.coupang.com

목차


    1. String 타입의 문자열 비교

    *자바에서 쓰는 메모리는 세 개가 있습니다.

    *기본 데이터 타입 8개로 만든 변수들은 스택(stack)이라는 메모리에 올라갑니다. (변수의 이름, 값이 함께)

    *String은 기본 데이터 타입이 아니고 Class 개념으로 씁니다.

    String s = "Hello"

    ↘String 타입으로 s라는 변수를 선언해서 여기에 "Hello"를 넣어놓으면, 스택(stack)이라는 메모리에는 s라는 변수만 저장합니다. "Hello"는 힙(heap)이라는 메모리에 따로 들어갑니다.

    스택(stack) 힙(heap)
    s "Hello"

    *'객체를 생성한다'라는 건 [Class]가 가지고 있는 애들을 사용할 수 있도록 힙(heap)이라는 메모리에 펼쳐 놓는 것입니다. 쉽게 얘기하면, 음식을 만들 때 냉장고에 재료를 때려 넣어놓은 상태로는 아무것도 할 수가 없습니다. 요리를 하려면, 조리대에 꺼내놓고 순차적으로 작업을 해야 합니다. 객체를 생성하는 것은, 음식을 하기 위해서 조리대에 올려놓는 재료들을 만드는 것이랑 똑같은 것입니다.


    1-1. [예제] 문자열 비교

    문자열 비교 예제 (화면 캡처_출처: Eclipse)

    ↘클래스 이름하고 똑같은 데에 괄호를 붙여 놓은 것은 생성자라고 부릅니다. 괄호 붙일 수 있는 것은 메소드하고 생성자 밖에 없습니다.

    문자열 비교 예제 (화면 캡처_출처: Eclipse)

    ↘값이 비교가 되는 게 아니라, 눈에 안 보이는 메모리 주소를 비교하기 때문에 여기서는 [false]가 나옵니다. String은 [==] 연산자를 쓰면 안 됩니다.

    문자열 비교 예제 (화면 캡처_출처: Eclipse)

    ↘값을 비교할 때는 [equals] 메소드를 씁니다. 웹사이트에서 로그인을 하려고 아이디 비밀번호를 넣으면, 내가 입력한 아이디와 회원가입할 때 저장시켜 놓은 아이디를 [equals] 메소드로 비교합니다. [==]로 비교하면 안 됩니다. 메모리 주소가 다르기 때문에.


    쿠팡 파트너스
    쿠팡 파트너스