Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在过时的JVM上从数组构造字符串时,JVM访问\u冲突\u异常_Java_String_Jdk1.6 - Fatal编程技术网

Java 在过时的JVM上从数组构造字符串时,JVM访问\u冲突\u异常

Java 在过时的JVM上从数组构造字符串时,JVM访问\u冲突\u异常,java,string,jdk1.6,Java,String,Jdk1.6,我遇到了一个非常奇怪的情况-我有以下代码: new String(data, position, len, Charset.forName("windows-1255")); 其中,数据是一个字节[],位置和长度是ints. 当我在jdk 1.6.038上运行它时,它运行得非常慢(一组迭代411秒),当我运行这个时: new String(data, position, len); 它在不到1秒的时间内运行相同的迭代。 更多数据: 当我调试它时,在进入构造函数(带有字符集)时 抛出JVM访

我遇到了一个非常奇怪的情况-我有以下代码:

new String(data, position, len, Charset.forName("windows-1255"));
其中,
数据
是一个
字节[]
位置
长度
int
s.
当我在jdk 1.6.038上运行它时,它运行得非常慢(一组迭代411秒),当我运行这个时:

new String(data, position, len);
它在不到1秒的时间内运行相同的迭代。 更多数据:

  • 当我调试它时,在进入构造函数(带有字符集)时 抛出JVM访问\u冲突\u异常并终止
  • 当我在JDK1.7.0_10上运行它时,它运行得很好(不到1秒)
有人能解释这种奇怪的行为吗?

我想你们遇到了问题。本文声称您使用的构造函数效率低下,因为它总是对提供的byte[]缓冲区进行防御复制,这可能导致频繁的GCing。我想如果你做了足够长的迭代,性能差异就会变得如此明显——就像文章摘要中提到的那样。


至于访问权限,这似乎是个问题。

你能给出一个我们可以自己运行来复制问题的最小示例吗?你的数据有多大?