java中的复制数组arraycopy()

System.arraycopy();//静态方法,在System类中定义,注意copy首字母是小写的

例子:

int[] a = {1,2,3,4,5};

int[] b = {9,8,7,6};

/*arraycopy有5个参数,第一个为:复制数组;第二个为:从哪个元素开始复制;

*第三个为:目标数组;第四个为:复制到目标数组的其实下标;第五个为:复制元素的个数***/

System.arraycopy(a,0,b,0,3);

结果是:b={1,2,3,7,6}//1,2,3把原来的9,8,7替代了

时间: 2024-10-27 13:39:17

java中的复制数组arraycopy()的相关文章

JAVA中复制数组的方法

在JAVA里面,可以用复制语句”A=B”给基本类型的数据传递值,但是如果A,B是两个同类型的数组,复制就相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么 引用同一数组的变量也要发生改变. 以下是归纳的JAVA中复制数组的方法: 1.使用FOR循环,将数组的每个元素复制或者复制指定元素,不过效率差一点 2.使用clone方法,得到数组的值,而不是引用,不能复制指定元素,灵活性差一点 3.使用System.arraycopy(src, srcPos, dest, destPos

Java中性能优化的45个细节

在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序性能. 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 控制资源的使用,通过线程同步来控制资源的并发访问: 控制实例的产生,以达到节约资源的目的: 控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信. 2. 尽量避免随意使用静态变量 当某个

Java中arraylist和linkedlist源代码分析与性能比較

Java中arraylist和linkedlist源代码分析与性能比較 1,简单介绍 在java开发中比較经常使用的数据结构是arraylist和linkedlist,本文主要从源代码角度分析arraylist和linkedlist的性能. 2,arraylist源代码分析 Arraylist底层的数据结构是一个对象数组.有一个size的成员变量标记数组中元素的个数,例如以下图: * The array buffer into which the elements of the ArrayLis

【Java面试题】52 java中会存在内存泄漏吗,请简单描述。

所谓内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中.Java中有垃圾回收机制,它可以保证一对象不再被引用的时候,即对象编程了孤儿的时候,对象将自动被垃圾回收器从内存中清除掉.由于Java 使用有向图的方式进行垃圾回收管理,可以消除引用循环的问题,例如有两个对象,相互引用,只要它们和根进程不可达的,那么GC也是可以回收它们的. package com.huawei.interview; import java.io.IOException; public class Garbage

Java中List转换为数组,数组转List

今天写代码遇到一个奇怪的问题,具体代码不贴出了,写一个简化的版本.如下:ArrayList<String> list=new ArrayList<String>();String strings[]=(String [])list.toArray(); 这样写代码个人觉得应该没什么问题,编译也没有问题.可是具体运行的时候报异常,如下:Exception in thread "main" java.lang.ClassCastException: [Ljava.l

java中反射学习整理

转载请注明:http://blog.csdn.net/j903829182/article/details/38405735 反射主要是指程序可以访问,检测和修改它本身的状态或行为的一种能力. java中反射是一种强大的工具,它能够创建灵活的代码,这些代码可以在运行时装载,无须在组件之间进行链接.反射允许在编写与执行时,使程序能够接入到jvm中的类的内部信息,而不是源代码中选定的类协作的代码.这使反射成为构建灵活应用代码的主要工具.需要注意的是,如果使用不当,反射的成本会很高. package

Java基础知识强化101:Java 中的 String对象真的不可变吗 ?

1. 什么是不可变对象?       众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的. 不能改变状态的意思是:不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变. 2. 区分对象和对象的引用 对于Java初学者, 对于String是不可变对象总是存有疑惑.看下面代码: 1 String s =

Java中ArrayList源码分析

一.简介 ArrayList是一个数组队列,相当于动态数组.每个ArrayList实例都有自己的容量,该容量至少和所存储数据的个数一样大小,在每次添加数据时,它会使用ensureCapacity()保证容量能容纳所有数据. 1.1.ArrayList 的继承与实现接口 ArrayList继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口. public class  ArrayList<E> ex

Java中LinkedList的remove方法真的耗时O(1)吗?

这个问题其实来源于Leetcode的一道题目,也就是上一篇日志 LRU Cache.在使用LinkedList超时后,换成ArrayList居然AC了,而问题居然是在于List.remove(Object o)这个方法. 我们知道,链表和数组相比,最主要的特点就是add和remove的操作是O(1)的.Java中的链表一般使用LinkedList这个类型,数组一般使用ArrayList.它们同时implements了List这个interface,所以都有remove(int index)和re