Nic*_*s C 5 java tostring char
我正在用char[]Java编写循环,并使用下面的示例代码:
char[] str = "Hello World !".toCharArray();
System.out.println(str.toString());
System.out.println(str);
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
[C@4367e003
Hello World !
Run Code Online (Sandbox Code Playgroud)
我对此有一些疑问:
什么[C@4367e003代表什么?它是一个内存地址吗?数字的含义是什么?这是什么意思[C@?
我一直以为调用println()一个对象会调用这个对象的toString方法,但似乎不是这样吗?
谢谢 !!
[C意味着它是一个字符数组([表示数组; C表示char),@4367e003意味着它位于内存地址[1] 4367e003.如果您想要一个表示该字符数组的字符串,请尝试new String(str).
println超载 ; 还有一个println接受字符数组.如果你没有传递一个原语,String或者char[],它会调用toString该对象,因为它有一个单独的重载System.out.println(Object).以下是采用字符数组的特定方法的文档.
以下是println(直接来自文档)的重载:
void println()
void println(boolean x)
void println(char x)
void println(char[] x)
void println(double x)
void println(float x)
void println(int x)
void println(long x)
void println(Object x)
void println(String x)
Run Code Online (Sandbox Code Playgroud)
您可以在本教程的底部阅读有关重载的更多信息.
[1]:从技术上讲,它实际上是对象哈希码的十六进制表示,但这通常是通过使用内存地址来实现的.请注意,它并不总是真正的内存地址; 有时候不适合int.更多信息在这个问题.
| 归档时间: |
|
| 查看次数: |
4301 次 |
| 最近记录: |