인프런 커뮤니티 질문&답변

노동준님의 프로필 이미지
노동준

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

2차원 배열 - 시작

배열에서 사용하는 length는 무엇인기 궁금합니다.

작성

·

46

0

 안녕하세요, 배열에서 당연하게 쓰고 있다가 문득 궁금증이 생겨서 질문을 드립니다. 배열을 생성하고 해당 배열의 길이를 알고 싶을 때, 자주 쓰던 length가 어디서 나온 것인기 궁금합니다.

 

String 객체 같은 경우

String a = "example";
int length = a.length();

다음과 같이 length() --> 메서드임을 알 수가 있는데

 

배열에서 사용하는 length 같은 경우는

int[] a = new int[5];
int length = a.length;

다음과 같이 소괄호() 없이 사용을 하게 되는데, 이게 뭔지 궁금해서 IDE 에서 command 클릭을 해도 해당 메서드의 출처를 알 수 가 없어 질문을 드립니다.

배열에서 사용하는 length 같은 경우 자바 자체적으로 있는 static 메서드 같은 존재인가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 노동준님, 배열의 길이를 알기 위해 사용하는 length에 대해 궁금증을 갖게 된 점은 아주 좋은 접근입니다.

Java에서 배열의 length는 메서드가 아닌 속성입니다. 이는 Java 언어 자체에서 지원하는 배열의 기본 속성으로, 배열이 생성될 때 자동으로 할당됩니다. 그래서 length는 메서드 호출 형식이 아닌 속성으로 접근하게 됩니다.

배열의 길이는 객체의 일종인 배열에 내장성으로 존재하며, 배열의 크기를 나타내는 정수값으로 접근할 수 있는 필드입니다. 이 length 필드는 생성 시점에 JVM 내부적으로 설정되며, 이는 배열의 사이즈를 직접적으로 알려줍니다. 이와 달리, Stringlength()는 문자열의 길이를 반환하는 메서드로 구현된 것입니다.

Java에서는 배열을 일단 생성하고 나면 고정된 크기를 갖기 때문에, length 필드를 통해 크기(길이)를 쉽게 확인할 수 있습니다. length는 배열이 생성되는 시점에 저장되어 비교적 빠른 시간 내에 접근할 수 있으므로, 배열의 속성과 특성을 파악하는 데 유용합니다.

이와 관련한 더 자세한 정보를 원하신다면, 다음의 유사한 질문과 답변 링크들을 참고하시길 권장합니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

노동준님의 프로필 이미지
노동준

작성한 질문수

질문하기