1

こんにちは私はJavaのWebサービスを持っています。そこでは、クライアントが送信する文字列を変更し、必要な刺し傷の種類に応じて返す文字列を返すさまざまなメソッドを持つクラスがあります。したがって、文字列型の要件に基づいて、メソッドが呼び出されます。

お気に入り

class Test{

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


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

したがって、10000のようなリクエストの配列が来た場合、これらのメソッドは10000回呼び出されます。これらのメソッドが静的であるか、NOTであるかを知りたいです(メインのWebサービスクラスでこのクラスのグローバルオブジェクトを作成し、これらを呼び出す必要があります)メソッド)?

4

5 に答える 5

2

これらのメソッドが静的であるという説得力のある理由は何ですか?静的メソッドが必要な場合は、それらを作成します。それ以外の場合は、設計の観点から、非静的な方法に固執します。静的メソッドをオーバーライドすることはできません(ただし、非表示にすることはできます)。

そしてこれがあります:

Javaでは、クラスの静的メソッドに不利な点はありますか?

于 2012-05-08T05:19:40.597 に答える
2

メソッドを静的にする必要はないと思います。オブジェクト内のメソッドにアクセスできる場合は、(可能な限り静的に回避する必要があります)。これにより、コードのパフォーマンスが向上します(メモリ使用率の観点から)。

于 2012-05-08T05:13:02.877 に答える
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 に答える