`

jdk1.5 System.arraycopy与jdk1.6 中Arrays.copyOf()&Arrays.copyOfRange()

    博客分类:
  • java
 
阅读更多

在JDK1.5的类System类中有方法

      public static void arraycopy(Object src,
                             int srcPos,
                             Object dest,
                             int destPos,
                             int length)

    标题上的这两上方法是JDK1.6新增的方法,这两个方法并没有用什么其它更奇妙的技巧,还是用的System.arraycopy(),只是在一定程度上减轻了程序员的工作,处理了一些常可能发生的错误。

    如:

    public static int[] copyOf(int[] original, int newLength) {
        int[] copy = new int[newLength];
        System.arraycopy(original, 0, copy, 0,
                         Math.min(original.length, newLength));
        return copy;
    }

 

    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;
    }

分享到:
评论

相关推荐

    JDK1.5中文版

    这在定义可接受不定数量参数的方法时非常有用,如System.arraycopy()或Arrays.copyOf()等。 除了语言层面的改进,JDK1.5还对Java虚拟机(JVM)和库进行了优化。例如,JVM引入了基于栈的并发垃圾收集器( Concurrent...

    ArrayList源码分析

    - **JDK 1.6**:数组的初始化发生在构造器中,也就是说,在创建 `ArrayList` 对象时就已经确定了数组的初始容量。 - **JDK 1.7 及以后版本**:数组的初始化被移到了 `add` 方法中,这意味着如果 `ArrayList` 在创建...

    java面试笔记.pdf

    - JDK 1.8中扩容是通过调用Arrays.copyOf和System.arraycopy方法完成的。 4. HashMap和TreeMap的区别: - TreeMap实现了SortedMap接口,基于红黑树,而HashMap基于哈希散列表实现。 - TreeMap插入、删除速度慢,...

    JAVA面试基础

    - 使用`Arrays.copyOf`方法(JDK 1.6+): ```java Arrays.copyOf(src, length); ``` #### 八、访问权限修饰符 - **public**:对所有类可见。 - **protected**:在类内部、同一个包、子类中可见。 - **默认(包...

    java面试宝典-高手总结

    7. 数组拷贝有两种常见方式:System.arraycopy()方法和Arrays.copyOf()方法,前者更加灵活,后者在JDK1.6之后引入,使用更简洁。 8. Java中的访问权限包括public、protected、default(无修饰符)和private。public...

    1.JavaSE基础学习笔记

    - **复制数组**:使用`System.arraycopy()`或`Arrays.copyOf()`方法。 - `System.arraycopy(array, srcPos, destArray, destPos, length);` - `destArray = Arrays.copyOf(array, newLength);` - **方法**:Java...

    Java中高级核心知识全面解析.pdf

    * System.arraycopy() 和 Arrays.copyOf() 是数组复制的两种方式。 * ArrayList 的扩容技术是基于数组的动态扩容。 Java 语言是一种功能强大且广泛应用的编程语言,本文对 Java 中的高级核心知识进行了全面解析,...

    jdk1.8_api:jdk1.8 api源码阅读记录

    接着,使用`System.arraycopy()`将集合元素复制到`a`中。最后,如果`a`比集合大,剩余的位置会被置为`null`。 在实际编程中,`toArray()`方法常用于将集合转换为数组,便于进一步处理或与其他数据结构交互。例如,...

    Java面试笔记.docx

    数组拷贝有两种常见方法:System.arraycopy()和Arrays.copyOf(),前者在JDK1.0版本引入,后者在JDK1.6版本提供,使用更便捷。 Java的四种访问权限是: 1. public:公开访问,所有类都能访问。 2. protected:受保护...

    java基础知识复习资料

    复制数组可以使用`System.arraycopy()`函数或`Arrays.copyOf()`方法,前者更加底层,而后者在JDK1.6之后引入,使用更简洁。当然,也可以使用for循环实现数组的复制。 Java有四种访问控制修饰符:public、protected...

    gate-core-8.0.zip

    1. 直接操作:`getByte`和`putByte`方法可以直接对字节数组进行读写,无需通过`System.arraycopy`这样的间接方式。 2. 高效复制:`copyMemory`方法可以快速地在内存之间复制数据,效率高于`Arrays.copyOf`等方法。 3...

    Java基础知识-复习资料(重点讲解).pdf

    - **Arrays.copyOf()**:JDK1.6引入的新方法,用于创建一个新的数组并复制源数组的内容。 8. **访问控制权限**: - **public**:所有类都能访问。 - **protected**:在类内部、同一包内及子类中可访问。 - **...

    java基础知识复习资料.doc

    复制数组通常有两种方式:使用`System.arraycopy()`函数或使用`Arrays.copyOf()`方法,后者在JDK 1.6版本引入,提供了一种更简洁的复制方式。当然,还可以使用传统的for循环来创建新的数组并逐个复制元素。 Java有...

    重点知识锦集CoreJava

    - 使用`System.arraycopy()`或`Arrays.copyOf()`创建新数组,前者支持数组内容的复制,后者用于创建指定长度的新数组。 7. **方法重载(Overload)与方法覆盖(Override)** - 方法重载:在同一个类中,方法名...

    Java中高级核心知识全面解析

    ArrayList通过System.arraycopy()或Arrays.copyOf()进行扩容,内部类Node用于LinkedList的节点存储。 以上只是Java中高级核心知识的一部分,还包括接口、反射、网络编程、并发控制、设计模式等多个方面,掌握这些...

    java学习笔记.docx

    - 复制: `System.arraycopy(sourceArray, sourceStartIndex, destArray, destStartIndex, length);` ### 九、排序算法 - **冒泡排序**: - 原理: 通过比较相邻的元素并交换它们的位置来对数组进行排序。 - 实现...

    Java虚拟机技术手册.docx

    - **数组拷贝**:使用`System.arraycopy()`和`Arrays.copyOf()`方法进行数组拷贝。 - **与LinkedList的区别**:在数据结构和性能方面的不同。 - **HashMap**:基于哈希表的键值对映射容器。 - **内部实现**:哈希...

    超详细JDK1.8 ArrayList集合默认长度及扩容分析

    System.arraycopy(a, 0, elementData, size, numNew); size += numNew; return numNew != 0; } ``` `addAll()`首先将传入的集合转换为数组,然后调用`ensureCapacityInternal(size + numNew)`,这里的`numNew`是...

    详细的java基础总结

    数组复制可以通过`System.arraycopy()`方法或者`Arrays.copyOf()`方法实现。 #### 第六章:异常处理 - **异常处理机制** 异常处理是Java中一种重要的机制,用于处理程序运行时可能出现的错误。Java中的异常处理...

Global site tag (gtag.js) - Google Analytics