작성
·
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 내부적으로 설정되며, 이는 배열의 사이즈를 직접적으로 알려줍니다. 이와 달리, String
의 length()
는 문자열의 길이를 반환하는 메서드로 구현된 것입니다.
Java에서는 배열을 일단 생성하고 나면 고정된 크기를 갖기 때문에, length
필드를 통해 크기(길이)를 쉽게 확인할 수 있습니다. length
는 배열이 생성되는 시점에 저장되어 비교적 빠른 시간 내에 접근할 수 있으므로, 배열의 속성과 특성을 파악하는 데 유용합니다.
이와 관련한 더 자세한 정보를 원하신다면, 다음의 유사한 질문과 답변 링크들을 참고하시길 권장합니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.