1

嗨,我在 Java 中有一个 Web 服务,其中我有一个具有不同方法的类,这些方法可以修改客户端发送的字符串并根据他想要的 sting 类型将其返回。因此,根据字符串类型要求,调用了一个方法..

喜欢

class Test{

public static String a(String z)
{
 // do stuff and return;
}


public static String b(String z)
{
 // do stuff and return;
}
}

因此,如果出现一个包含 10000 个请求的数组,这些方法会被调用 10000 次,我想知道这些方法应该被视为静态方法还是非静态方法(我应该在我的主 Web 服务类中创建此类的全局对象并调用这些方法方法) ?

4

5 回答 5

2

我认为您不需要将方法设为静态,如果您可以访问对象内的方法,那么您应该(尽可能避免静态)。这可以提高代码性能(在内存利用率方面)。

于 2012-05-08T05:13:02.877 回答
2

这些方法是静态的,令人信服的原因是什么?如果您需要静态方法,请创建它们。否则,从设计的角度来看,坚持使用非静态方法。您不能覆盖静态方法(尽管您可以隐藏它们。)

还有这个:

在Java中,类上的静态方法有什么缺点吗?

于 2012-05-08T05:19:40.597 回答
1

如果方法在所有情况下的行为都相同,则可以使用静态方法。如果这些方法只是对作为参数提供的字符串做一些工作,并且所有实例的行为都是相同的,那么您可以。

同样,您也可以从中创建一个单例并通过 UNIQUE_INSTANCE 调用方法。

就像是:

public class Test {

    private static final Test UNIQUE_INSTANCE = new Test();

    private Test() {
    }

    public static final Test getUniqueInstance() {

        return UNIQUE_INSTANCE;
    }

    public final String a(String z) {

        // do stuff and return;
    }


    public final String b(String z) {

        // do stuff and return;
    }
}

然后你可以做>>

Test.getUniqueInstance().a("Hello");
Test.getUniqueInstance().b("World");
于 2012-05-08T05:27:10.173 回答
0

如果线程之间没有共享任何资源,那么使用任何静态方法都没有害处。

于 2012-05-08T05:06:47.907 回答
0

是的,应该有一个静态修饰符,因为不同的方法或函数之间没有交互,并且结果以相同的方法返回。“静态”一词是定义一个类变量或方法,无需实例化此类对象即可访问。

如果你不打算实例化类,而只需要使用里面的方法,“静态”是正确的方法,并将类构造函数设置为私有。

于 2012-05-08T05:15:49.810 回答