如果我声明一些字符串变量
String str = null;
Run Code Online (Sandbox Code Playgroud)
str?str被声明的变量?null内存中有值,那么null二进制的表示究竟是什么?当你做类似的事情时:
String str = null;
Run Code Online (Sandbox Code Playgroud)
分配的唯一东西是对字符串的引用(这类似于包含指针类型的语言中的字符串指针).此引用是一个32或64位变量(取决于您的硬件体系结构和Java版本),它位于堆栈中(可能取决于您的声明所在的确切上下文).
不应为null自身分配内存,因为null它实际上不是有效的对象实例.它只是一个占位符,表示对象引用当前不是指对象.可能它只是文字值0,因此分配对象引用null等同于NULL在C/C++中设置指针类型.但最后一点是我的猜想.
Null 是未绑定到对象的引用的值。
无论其值如何,都会为引用变量本身分配空间。Null 只是一个适合该空间的值。
针对具体例子来回答每个问题。
| 归档时间: |
|
| 查看次数: |
3906 次 |
| 最近记录: |