Java程序员必备技能:静态方法的正确使用姿势!

2024-01-03 10:52:14

Java程序员必备技能:静态方法的正确使用姿势! - 程序员古德

静态方法是Java中的一种方法,它属于类而不是类的实例,这意味着你可以在不创建类的实例的情况下调用它,直接通过类名来访问,静态方法在内存中只有一份,无论该类被实例化多少次,它的静态方法都只有一份。

定义

Java程序员必备技能:静态方法的正确使用姿势! - 程序员古德

举一个业务中计算器的“加法”功能,假设我们有一个名为“Calculator”的类,它有一个静态方法“add”,在这个场景中,“Calculator”类代表一个计算器设备,而“add”方法代表这个计算器上的加法按钮,不论我们有多少个计算器(即Calculator的实例),加法按钮的功能(即add方法)都是相同的,我们不需要特定的计算器实例来执行加法操作,只需要知道如何操作计算器(即调用add方法)就可以了,因此可以将“add”方法设计为静态方法。

简单来说,静态方法就像是一个工具或功能,它与特定的对象实例无关,而是与类本身相关。在业务逻辑中,当我们需要某种功能而不需要依赖于对象的状态时,就可以考虑使用静态方法。

代码案例

Java程序员必备技能:静态方法的正确使用姿势! - 程序员古德

通过一段代码案例来说明静态方法的使用。创建一个简单的工具类,它包含一个用于字符串反转的方法,然后在客户端代码中调用它,如下代码:

首先,创建一个StringUtils类,它包含一个非静态的reverseString方法,如下代码:

// StringUtils.java  
public class StringUtils {  
      
    // 这是一个非静态方法,用于反转字符串  
    // 通常,这样的方法更适合作为静态方法来实现,因为它不依赖于对象的状态  
    public String reverseString(String input) {  
        return new StringBuilder(input).reverse().toString();  
    }  
}

现在,我们在客户端代码中调用这个非静态方法:

// ClientCode.java  
public class ClientCode {  
    public static void main(String[] args) {  
        // 为了调用非静态方法,我们需要先创建StringUtils的一个实例  
        StringUtils stringUtils = new StringUtils();  
          
        // 使用实例来调用非静态方法  
        String reversed = stringUtils.reverseString("Hello, World!");  
          
        // 输出反转后的字符串  
        System.out.println(reversed); // 输出:!dlroW ,olleH  
    }  
}

在这个例子中,reverseString方法被实现为非静态的,因此,每次调用这个方法时,我们都需要先创建一个StringUtils的实例,这会产生不必要的开销,也会让代码看起来不够简洁。

如果我们把这个方法改为静态的,客户端代码就可以更简洁地调用它,而不需要创建额外的实例,如下代码所示:

修改后的StringUtils类:

// StringUtils.java (修改后)  
public class StringUtils {  
      
    // 修改为静态方法,这样我们就可以直接通过类名来调用它,而不需要创建实例  
    public static String reverseString(String input) {  
        return new StringBuilder(input).reverse().toString();  
    }  
}

修改后的客户端代码:

// ClientCode.java (修改后)  
public class ClientCode {  
    public static void main(String[] args) {  
        // 直接通过类名调用静态方法,无需创建实例  
        String reversed = StringUtils.reverseString("Hello, World!");  
          
        // 输出反转后的字符串  
        System.out.println(reversed); // 输出:!dlroW ,olleH  
    }  
}

核心总结

Java程序员必备技能:静态方法的正确使用姿势! - 程序员古德

使用静态方法方便快捷,不用创建对象就能直接调用,省时省力,而且,静态方法是“共享”的,不占用每个对象的内存空间,所以更加节省内存。

虽然静态方法好用,但也不能滥用,它比较适合用在那些不依赖对象状态、可以独立执行的功能上,比如工具类的方法,同时,因为静态方法是属于类的,所以要注意线程安全,特别是在修改静态变量时。

关注我,每天学习互联网编程技术 - 程序员古德

文章来源:https://blog.csdn.net/qusikao/article/details/135355279
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。