gpt4 book ai didi

java - 对象和字符串对象的区别?

转载 作者:行者123 更新时间:2023-12-01 08:59:52 25 4
gpt4 key购买 nike

让我们举个例子:

class Class
{
String object;
Class ob;

void display()
{
object= object+1;
ob = ob+1;
System.out.println(object +" "+ ob );
}

public static void main (String args[])
{
Class obj = new Class();
obj.display();
}
}

这会产生编译时错误: 二元运算符 + 的错误操作数类型首先输入 find ;第二种类型:int。此错误指向我的代码的这一行 ob = ob+1;

但是,当我消除这一行时,程序会以正确的方式执行(将字符串打印为 null1)。

现在我的问题是,object 和 ob 分别是 String 类和 Class 类的对象,那么为什么/如何我能够将 1 添加到 object 的 null 值而不是 ob 的 null 值呢?

最佳答案

之所以有效,是因为 java 编译器具有 String 的特定知识。类并知道如何用它做特殊的事情,其中​​之一就是加法。

当您向字符串对象添加某些内容时,java 编译器会将您的添加替换为将操作数转换为字符串的代码(通过调用 toString() ),然后发出对 String.concat() 的调用。如果您在一个语句中添加许多字符串,它将创建一个 StringBuilder并调用append()多次,然后取 toString() StringBuilder的.

关于java - 对象和字符串对象的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41771748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com