有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java何时使用静态方法和字段?

我知道静电是什么,只是不知道什么时候用

静态变量: 我只对常量字段使用它。有时一个类中有几十个常量,所以使用静态常量可以节省大量内存。还有其他典型的用例吗

静态方法: 我在上算法课时会用到它。例如,提供不同排序算法的类。这是反对面向对象设计的吗?我认为最好保持这种方式,而不是在需要使用排序算法的每个类中实现排序算法。我错了吗?有哪些好的用例

此外,使用静态和非静态字段/方法之间是否存在性能差异


共 (2) 个答案

  1. # 1 楼答案

    我个人的经验法则是,静态的东西“只是挂在那里”。它们(免责声明,不完全正确)是全球性的,但包含在这一特定类别中是有意义的

    如果你发现自己反复加载一些重量级对象,静态字段是很好的。例如,我现在正在做的项目在两个图像之间进行切换。这些是与应用程序一起加载并保存在内存中的静态字段,而不是每次重新加载它们并让GC处理混乱

  2. # 2 楼答案

    static field在所有对象中有一个值,它们称之为类成员,因为它与类相关

    • 您可以使用静态字段作为实用工具

      举个例子,假设我们需要知道有多少实例:

    Counter

         public class Counter {
    
    
         public static int instanceCount ;
    
            public Counter()
            {
                instanceCount++;
            }
    
            public int getInstanceCount()
            {
                return instanceCount;
            }
    
    
    
        }
    

    在创建Counter类的两个实例之后。但是它们共享相同的instanceCount字段,因为这是一个静态字段,所以instanceCount的值在firstCountersecondCounter中是相同的

    main

           Counter firstCounter = new Counter();
           // will print 1
           System.out.println(co.getInstanceCount());
           // will print 2
            Counter secondCounter = new Counter();
    
            System.out.println(co1.getInstanceCount());