【发布时间】:2019-01-22 16:03:01
【问题描述】:
我刚刚和一位同事讨论过,他问我为什么要像这样做一个静态 Http 请求:
HttpClient.doGet(HashMap<String,String> Parameters);
而不是通过默认构造函数调用类的对象,而是使用这样的非静态方法:
new HttpClient().doGet(HashMap<String,String> Parameters)
如果假设 doGet 方法的实现只使用函数的参数而没有任何成员变量,那么静态实现会不会有任何问题,例如线程安全?
【问题讨论】:
-
如果
doGet方法不使用HttpClient类中的任何共享变量,那么不会有任何明显的问题。还假设客户端每次请求使用一次parameters映射。 -
请记住,`new HttpClient()' 也是一个静态方法调用。
-
@jrahhali 为什么?这就是我调用对象的新实例的原因。
-
@flixe 为什么?
标签: java multithreading static thread-safety