这很奇怪.一位同事询问了java中myArray.hashCode()的实现.我以为我知道,但后来我做了一些测试.检查下面的代码.我注意到的奇怪的想法是,当我写出第一个系统时,结果是不同的.请注意,它几乎就像报告内存地址并修改类移动了地址或其他内容.只是想我会分享.
int[] foo = new int[100000];
java.util.Random rand = new java.util.Random();
for(int a = 0; a < foo.length; a++) foo[a] = rand.nextInt();
int[] bar = new int[100000];
int[] baz = new int[100000];
int[] bax = new int[100000];
for(int a = 0; a < foo.length; a++) bar[a] = baz[a] = bax[a] = foo[a];
System.out.println(foo.hashCode() + " ----- " + bar.hashCode() + " ----- " + baz.hashCode() + " ----- " + bax.hashCode());
// returns 4097744 ----- 328041 ----- 2083945 ----- 2438296 …Run Code Online (Sandbox Code Playgroud) 我想使用java中的toString()方法将字符数组转换为字符串对象.这是我使用的测试代码的片段:
import java.util.Arrays;
class toString{
public static void main(String[] args){
char[] Array = {'a', 'b', 'c', 'd', 'e', 'f'};
System.out.println(Array.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
原则上,它应该打印abcdef,但是每次程序执行时都会打印[C @ 6e1408或[C @ e53108]等随机乱码.我不需要替代,但想知道为什么会发生这种情况.