我有一个字符串,需要将其作为字符数组遍历。
当然,常规方法是使用 toCharArray()
。
String str = "Hello";
char[] charArr = str.toCharArray();
现在,toCharArray()的源代码如下。
public char[] toCharArray() {
// Cannot use Arrays.copyOf because of class initialization order issues
char result[] = new char[value.length];
System.arraycopy(value, 0, result, 0, value.length);
return result;
}
因此,Java正在创建一个新的char[]类型内存对象,并将字符串对象复制到这个新对象中。
我的问题是是否可能在不复制数组的情况下使用字符串作为char[]。 我的意图是节省内存空间。 如果不可能,请问原因是什么?
提前致谢!
char[]
数组的直接引用交给一个本应该是不可变的对象将是一个非常糟糕的想法,特别是如果所涉及到的不可变对象是String
类型的话,因为它必须履行安全相关的角色。 - Holgerchar[]
数组。你没有解释为什么你认为需要它。 - Holgerchar[]
数组中的类。唉!初学者的错误 :) - Jordan Epstein