java - 访问没有对象的字符串类的方法

标签 java string

public class UpLower {    
    public static void main(String[] args) {  
        String str = "HOW ARE YOU";  
        String upper_str = str.toLowerCase();  
        System.out.println("Original String: " + str);  
        System.out.println("String in uppercase: " + upper_str);  
    }  
}

此程序将字符串从大写字符转换为小写字符。我无法理解这个程序。

我的问题是

方法toLowerCase()在lang包中的String类中。在java中,我们需要为该类创建一个对象来访问非静态方法那个类的。如果是这样的话,在不为类 String 创建对象的情况下,我们如何直接访问方法 toLowerCase()

最佳答案

您对静态方法和实例方法的理解是正确的。

toLowerCase() 实际上是 String 类型对象的实例方法。

但是在java中String有特殊的处理方式。当您编写 String str = "How Are You" 时,str 将引用 String 对象。所以实际上你只是在返回的对象上调用实例方法 toLowerCase() 。

对于初学者,您可以认为 String str = "How Are You"; 类似于 String str = new String("How Are You");

但实际上这两个语句String s = "something"和 String s = new String("something");

如果您想知道原因,请尝试阅读 Java 中的字符串池和字符串不可变性。

关于java - 访问没有对象的字符串类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48335845/

相关文章:

string - Data.ByteString.Char8中 `isInfixOf`的时间复杂度是O(m * n)吗?

javascript - 比较子串数组

javascript - 删除 url javascript 中域和 http 之后的所有内容

regex - 使用 awk 从字符串中提取子字符串

java - 在java中从另一个CSV字符串中删除一个字符串CSV元素

java - java 中 <SomeClass extends ?> 的含义?

Java ProbeContentType

java - 如何在同一个程序中使用onclick和onclicklistener?

java - 打印一个描述整数的英文短语

c# - 如何: *. csv -->行-->someArray-->修改