자바에서는 다음과 같은 배열을 선언 할 수 있습니다.
String[] array = new String[10];
int size = array.length;
이것은 배열 자체가 객체라는 것을 의미합니까? C ++에서 배열은 포인터 일 뿐이며 메서드가 없기 때문입니다.
답변
답변
답변
글쎄, 자바에게 물어 보자!
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println(args instanceof Object);
int[] someIntegers = new int[] {42};
System.out.println(someIntegers instanceof Object);
}
}
산출:
true
true
답변
예, Java의 객체입니다.
또한 그렇게 할 때 array.length
메서드를 호출하는 것이 아니라 배열의 length
필드에 액세스하는 것 입니다. Arrays 클래스 에는 많은 정적 메서드가 있습니다.
답변
Java의 배열에는 객체와 공유하지 않는 고유 한 바이트 코드가 있다는 점에 유의해야합니다. 그것들은 확실히 객체이지만 낮은 수준에서 약간 다르게 처리됩니다.
답변
엄밀히 말하면 배열도 C ++의 객체라고 덧붙일 수 있지만 대답은 ‘예’라고 말하고 싶습니다. 현재 표준 (FDIS)의 §1.8 [intro.object]에서 :
객체 저장 영역이다.