>Java >java지도 시간 >Java의 Arrays.copyOf를 사용하여 얕은 복사본을 구현하는 방법은 무엇입니까?

Java의 Arrays.copyOf를 사용하여 얕은 복사본을 구현하는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-04-24 19:31:06819검색

1. 얕은 복사 지침

값 유형인 프로토타입 객체의 멤버 변수 속성을 모두 복제된 객체에 복사하고, 참조 유형인 프로토타입 객체의 멤버 변수의 참조 주소를 복사합니다. 복제된 개체, 즉 프로토타입 개체에 있는 멤버 변수가 참조 개체인 경우 이 참조 개체의 주소는 프로토타입 개체 및 복제된 개체와 공유됩니다. 간단히 말해서, 얕은 복사본은 프로토타입 개체만 복사하고 참조하는 개체는 복사하지 않습니다.

2.Arrays.copyOf() copy

는 새 배열을 만든 다음(즉, 새 메모리 공간 할당) System.arraycopy()를 호출하여 콘텐츠를 복사하고 새 배열에 할당하는 것입니다. 그런 다음 새 배열을 반환합니다.

3. 예시

public static byte[] copyOfRange(byte[] original, int from, int to) {
    int newLength = to - from;
    if (newLength < 0)
        throw new IllegalArgumentException(from + " > " + to);
    byte[] copy = new byte[newLength];
    System.arraycopy(original, from, copy, 0,Math.min(original.length - from, newLength));
    return copy;
}

실제로는 System.arraycopy를 호출하므로 얕은 복사본이어야 합니다.

위 내용은 Java의 Arrays.copyOf를 사용하여 얕은 복사본을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제