关于System.arraycopy()方法的一个发现,不知道各位是否认可,或是偶的理解有误也肯请帮忙指正
第一个程序如下,运行也完全无误
public class ArrayCopy
{
public static void main(String[] args)
{
String totalBookNames[] = new String[1000];
for(int i=0;i<totalBookNames.length;++i)
{
totalBookNames[i]="图书"+i;
}
String lendBookNames[] = new String[15];
System.arraycopy(totalBookNames,8,lendBookNames,0,15);
System.out.println("借出的图书列表如:");
for(int i=0;i<lendBookNames.length;++i)
{
System.out.println(lendBookNames[i]);
}
}
}
下面给出第二个使用该方法的程序,运行有错误
import java.io.*;
public class AcceptInMessage
{
public static void main(String[] args)
{
char engChar[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z'};
int arcChar[] = {};
System.out.println(engChar.length);
System.arraycopy(engChar,0,arcChar,0,5);
for(int i=0;i<=25;i++)
{
System.out.print(engChar[i]);
}
System.out.println();
}
}
运行错误提示信息如下(编译正确)
Exception in thread "main" java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at AcceptInMessage.main(AcceptInMessage.java:11)
不知道这里作何解释?难道说System.arraycopy()方法操作的数组只能应用于用new方法创建的数组吗?
public class ArrayCopy
{
public static void main(String[] args)
{
String totalBookNames[] = new String[1000];
for(int i=0;i<totalBookNames.length;++i)
{
totalBookNames[i]="图书"+i;
}
String lendBookNames[] = new String[15];
System.arraycopy(totalBookNames,8,lendBookNames,0,15);
System.out.println("借出的图书列表如:");
for(int i=0;i<lendBookNames.length;++i)
{
System.out.println(lendBookNames[i]);
}
}
}
下面给出第二个使用该方法的程序,运行有错误
import java.io.*;
public class AcceptInMessage
{
public static void main(String[] args)
{
char engChar[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z'};
int arcChar[] = {};
System.out.println(engChar.length);
System.arraycopy(engChar,0,arcChar,0,5);
for(int i=0;i<=25;i++)
{
System.out.print(engChar[i]);
}
System.out.println();
}
}
运行错误提示信息如下(编译正确)
Exception in thread "main" java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at AcceptInMessage.main(AcceptInMessage.java:11)
不知道这里作何解释?难道说System.arraycopy()方法操作的数组只能应用于用new方法创建的数组吗?
...全文
相关推荐
Java中的数组复制(clone与arraycopy)代码详解
主要介绍了Java中的数组复制(clone与arraycopy)代码详解,本文并未全部介绍数组复制的几种方式,仅对clone和copy的相关内容进行了解析,具有一定参考价值,需要的朋友可以了解下。
深入理解java中Arrays.sort()的用法
主要介绍了深入理解java中Arrays.sort()的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Java数组集合的深度复制代码实例
主要介绍了Java数组集合的深度复制代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java实现删除排序数组中重复元素的方法小结【三种方法比较】
主要介绍了Java实现删除排序数组中重复元素的方法,结合实例形式对比分析了三种常见的数组元素删除算法操作技巧,需要的朋友可以参考下
Java程序将一个数组的所有元素复制到另一个数组.docx
每个 Java 程序都会为您提供不同的方法来解决 Java 中的特定问题。如果您是 Java 编程新手,我们强烈建议您阅读有关Java 教程的文章,其中我们通过实际示例和程序介绍了 Java 编程的所有基础知识和高级主题。


Java SE
