== vs equals(), length vs length(), 여러 변수 한 줄에 선언

no-glass-otacku·2025년 9월 24일
0

Algorithm

목록 보기
4/4

📜 오늘 배운 자바 핵심 문법: == vs equals(), length vs length(), 여러 변수 한 줄에 선언


📌 ==.equals()의 차이

자바에서 두 값을 비교할 때 사용하는 두 가지 방법입니다. 어떤 자료형을 비교하느냐에 따라 적절한 방법을 사용해야 해요.

구분== 연산자.equals() 메서드
주요 사용기본 자료형 (Primitive Types)
int, char, boolean
참조 자료형 (Reference Types)
String, Integer, Double
비교 대상변수에 저장된 실제 값객체가 가리키는 데이터 내용
주의 사항참조 자료형에 사용 시, **참조 주소(메모리 위치)**를 비교해요. 내용이 같아도 주소가 다르면 false입니다.기본 자료형에는 사용할 수 없어요.

📌 lengthlength()의 차이

💡 핵심 원리: '종류'를 구별하기
프로그래밍 문법은 결국 '무엇'의 길이를 재는가에 따라 달라져요.
이때 . 뒤에 ()가 붙는지 여부는 그 '무엇'이 데이터(속성)인지 기능(메서드)인지를 나타내는 중요한 힌트가 됩니다.

length (괄호 없음)

📝 이건 데이터(속성)예요. 배열처럼 고정된 크기를 가진 객체의 고유한 정보를 의미합니다. 배열을 만들 때 그 길이가 정해지기 때문에, 그냥 그 값을 읽어오기만 하면 되죠. 따라서 굳이 어떤 동작을 실행할 필요가 없어 괄호가 붙지 않습니다.

  • 예시: String[] arr = {"A", "B", "C"};
    • 👉arr.length의 결과는 3 입니다.

length() (괄호 있음)

💻 이건 기능(메서드)이에요. 문자열처럼 가변적인 데이터를 다룰 때, 길이를 계산하거나 확인하는 '동작'을 수행하는 것이죠. "야, 지금 이 문자열의 길이가 몇이야?"라고 물어보는 명령과 같아서 괄호 ()가 필요합니다.

  • 예시: String str = "Hello";
    *👉 str.length()의 결과는 5 입니다. 문자열의 길이를 세는 '행위'를 수행하는 거죠.

🤔 쉽게 기억하는 방법

이 두 가지를 구별하기 어렵다면, 다음과 같은 간단한 질문을 스스로에게 해보세요.

"이것은 이미 정해진 상수(값)인가?" 👉 그렇다면 length (괄호 없음)
"이것은 어떤 동작을 통해 알아내야 하는가?" 👉 그렇다면 length() (괄호 있음)


📌 변수 초기화: 여러 변수 한 줄에 선언하기

자바에서 여러 변수를 한 줄에 선언할 수 있지만, 초기화에는 주의해야 합니다.

  • 잘못된 초기화:
    int a, b, c, d = 0;

    • 이 코드는 d0으로 초기화하고, a, b, c는 초기화되지 않은 상태가 됩니다. 이 변수들을 사용하면 컴파일 오류가 발생해요.
  • 올바른 초기화:
    int a = 0, b = 0, c = 0, d = 0;

    • 이렇게 각 변수에 값을 명시적으로 할당해야 모든 변수가 올바르게 초기화됩니다.
profile
Move forward

3개의 댓글

comment-user-thumbnail
2025년 9월 29일

오 equals() 메서드가 값의 참조였군요 처음 알았습니다 ㅎㅎ 유익한 포스트 잘 보고 갑니당

답글 달기
comment-user-thumbnail
2025년 9월 30일

이거 보니깐 문법 이제 다신 안 헷갈릴 것 같아요!!

답글 달기
comment-user-thumbnail
2025년 9월 30일

최근에 다른 언어를 좀 하느라 자바를 잠시 잊고 있었는데 너무 유익한 글이네요 !!

답글 달기