在字符串文本上调用方法 (Java)

2022-09-04 01:41:31

我知道字符串文本是对象。根据

https://en.wikibooks.org/wiki/Java_Programming/Classes,_Objects_and_Types

创建对象时,还会创建对该对象的引用。该对象不能在Java中直接访问,只能通过此对象引用。此对象引用具有分配给它的类型。在将对象引用作为参数传递给方法时,我们需要此类型。

但是,当我们有文本访问 String 方法时,我们是否违反了这一点?

例如:

System.out.println("Literal".toUpperCase());

这不是直接访问对象吗?而不是通过引用访问对象。

例如:

String x = "Literal"; 
System.out.println(x.toUpperCase());

答案 1

这不是直接访问对象吗?而不是通过引用访问对象。

不,您仍在使用引用。作为字符串文本的表达式的值是字符串引用。它仍然不是您直接访问的对象。

在您的示例中,的值仍然是一个引用,并且除了存在变量之外,您的两个代码段是等效的。xx


答案 2