为什么String引用变量在Java中存储字符串而不是地址?

绍拉夫
public class ARRAYS {
    public static void main ( String[] args){

    String s = new String("Hello");
    System.out.println(s);

    char[] abc = new char[5];
    abs[0] = 'a';
    abs[1] = 'b';
    abs[2] = 'c';
    abs[3] = 'd';
    abs[4] = 'e';
    System.out.println(abc);

    doggy d = new doggy();
    System.out.println(d);
    }
}

这里有3个对象,分别是char数组对象(由abc引用),字符串对象(由s引用)和狗对象(由d引用),它们是abc,d和s是引用变量,d如何存储地址,而abc和s存储数组的内容?

µ理论

当您编写System.out.println(object);内容时,实际上会看到打印的值object.toString()(返回a String,这也是为什么String也必须用其内容表示)的结果。

之所以如此,是因为该String对象会覆盖默认toString()方法。
而这doggyarrays没有。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么String.prototype中的'this'引用对象类型,而不是字符串类型?

为什么可以从字符串变量而不是PHP中的字符串实例化类?

为什么 al_draw_textf() 打印数字而不是存储在字符串变量中的字母?

为什么Objective-C中的字符串指针接受并返回字符串的值而不是内存地址?

为什么经常将字符串数据存储在未对齐的地址中

为什么在Rust中修改字符串变量时指针的地址没有改变?

为什么std :: vector <std :: string>中的字符串以相同的数据地址结尾?

为什么在Chrome中存储为变量“名称”的数组会转换为字符串?

为什么使用 + 的字符串加法允许移动到 java 中的新地址?

为什么在C ++中将字符串引用成员变量设置为空字符串?

为什么键入错误:<string>中的字符串要求字符串作为左操作数,而不是列表

为什么打印字符指针会产生字符串而不是内存地址?

如果==比较Java中的引用,为什么使用这些字符串将其评估为true?

java中的字符串“ ==”检查引用,为什么此代码返回true?

为什么函数会在Java中修改array [0]而不是字符串?

为什么字符串对象需要#include <string>而不是字符串文字?

为什么调用cout.operator <<(const char *)打印地址而不是字符串?

为什么插入运算符是打印地址而不是字符串?

为什么打印char *会给出字符串而不是地址?

为什么要使用字符串而不是直接方法调用来触发Redux存储中的操作?

为什么字符串不是值?

为什么字符串文字不是字符串?

为什么Java具有“字符串”类型而不是“字符串”?

从 Python 中的字符串引用变量

如何批量检查存储在变量中的字符串是否与netstat -nao的IP地址相同

为什么我的子查询使用字符串而不是字段引用?

为什么String,StringBuffer和StringBuilder类使用字节数组而不是字符数组来存储字符串字符?

如何在System.DataTable中存储对对象的引用,而不是字符串?

为什么最好将电话号码存储为字符串而不是整数?