csg*_*guy 13 java string object
我知道字符串文字是对象。根据
https://zh.wikibooks.org/wiki/Java_Programming/Classes_Objects_and_Types
创建对象时,也会创建对该对象的引用。只能通过此对象引用才能在Java中直接访问该对象。该对象引用具有分配给它的类型。当将对象引用作为参数传递给方法时,我们需要这种类型。
但是,当我们有文字访问String方法时,是否违反了这一规定?
例如:
System.out.println("Literal".toUpperCase());
Run Code Online (Sandbox Code Playgroud)
这不是直接访问对象吗?与通过引用访问对象相反。
例如:
String x = "Literal";
System.out.println(x.toUpperCase());
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 20
这不是直接访问对象吗?与通过引用访问对象相反。
不,您仍在使用参考。作为字符串文字的表达式的值是字符串引用。它仍然不是您直接访问的对象。
在您的示例中,的值x仍然是引用,并且您的两个代码段是相同的,除了存在变量x。