4

我需要建议我将自定义 java 方法设为静态还是通过适配器从 java 对象访问?

我的场景是:成千上万的用户正在进行交易,每个用户一次又一次地访问相同的方法,只是更改特定于该用户或交易的一些值。

现在,如果我将它们作为静态方法,那么它会给用户带来问题,因为我们知道适配器调用是异步的......所以如果多个用户同时调用相同的方法,那么它会导致问题返回不同的值彼此?

或者,如果我通过首先声明该类对象然后访问方法,提供参数来访问所有自定义 java 方法....那么当多个用户同时访问同一个方法时,他们将获得正确/相关的数据?

从性能的角度来看,哪种方法更好,静态方法是否会给用户带来错误的数据......一个用户的数据给另一个人,而其他人的数据给另一个人。

感谢阿卜杜勒阿哈德

------------我的代码就像---

java code:

  public static String getBalanceSummaries(String userAct){
            String replyMsg="";
    try {

    replyMsg = getBalanceStatementfromMQ(userAct);

    }catch(Exception e) {}

    return replyMsg;

    }

  -----WL Adapter code:------

    function showAllBalace(userActNo){
        return{
            result: com.my.package.getBalanceSummaries(userActNo)
        };
    }
4

1 回答 1

2

我相信您将静态方法与静态字段混淆了。静态方法只是与对象的任何特定实例无关的代码——基本上任何未使用thissuper引用的方法都可能是静态的候选方法,前提是它们没有覆盖另一个方法并且不打算被覆盖。与“普通”方法相比,静态方法在多线程方面没有任何额外的问题。

另一方面,静态字段根据定义在所有线程之间共享,并且对它们的访问应该像任何共享资源一样受到保护。任何使用静态字段的方法,无论方法本身是否是静态的,都应该检查并发问题。

就性能而言,有轶事证据表明,与普通虚拟方法相比,静态方法可能会提供性能改进,但老实说,在分析器告诉我之前我不会担心它。过早的优化是万恶之源……

于 2013-03-03T07:55:42.717 回答