[Java] 2. length vs length()

김민주·2025년 3월 22일

Programming Language

목록 보기
6/12
post-thumbnail

💡 왜 이걸 헷갈릴까?

배열은 .length, 문자열은 .length()
"둘 다 길이 구하는 거 아냐?" → 맞아. 근데 "완전히 다르게 동작"해.

Array는 length 필드

  • 배열은 크기가 처음부터 정해진다.
  • .length변수(필드)로 저장되어 바로 읽을 수 있다.
    괄호 붙이면 에러 터진다.

📌 코드 예시

int[] arr = new int[5];
System.out.println(arr.length);  // 출력: 5
// System.out.println(arr.length()); // ❌ 에러 발생

String은 length() 메서드

  • 문자열은 문자들의 객체
  • 문자열 길이는 계산이 필요해서 메서드 형태로 제공
    무조건 괄호 붙여야 함

📌 코드 예시

String str = "Hello World";
System.out.println(str.length());  // 출력: 11
// System.out.println(str.length); // ❌ 에러 발생

length vs length()

구분ArrayString
길이 구하는 방법.length.length()
구조필드(변수) → 값 저장메서드(함수) → 계산 필요
특징Primitive TypeReference Type
예시arr.length → 5str.length() → 5

✅ 마무리

Array와 String의 길이 구하는 방법이 다르다는 걸 명확히 기억하자!

배열은 arr.length → 필드 접근
문자열은 str.length() → 메서드 호출

🎯 Mini Quiz

아래 코드의 결과는 무엇일까요? 🤔

int[] arr = {1, 2, 3, 4};
String str = "abcd";

System.out.println(arr.length);     // ?
System.out.println(str.length);     // ?
System.out.println(str.length());   // ?

📝 정답
✅ arr.length → 4 (배열의 길이)
❌ str.length → 컴파일 에러! (String은 메서드로 접근해야 함)
✅ str.length() → 4 ("abcd"의 문자 개수)

profile
낭비하지마 네 시간은 은행🐰

0개의 댓글