我对我的应用程序中许多 Controller /servlet 中使用的两种方法有两个问题:
1-在 util 类中调用静态方法或非静态方法(例如处理日期的方法,即获取当前时间、在时区之间转换)之间有什么区别,哪个更好? 2-直接在 Controller 中调用方法(包含太多逻辑,例如发送电子邮件)或在不同线程中运行该方法有什么区别?
最佳答案
1)
- Utils 类通常没有任何与其关联的状态。他们只是有行为。因此,创建它们的“实例”确实没有多大意义。
- 即使编译器不会提示,实例化 Util 类也会是一种误导性的编码。
- 无状态 Utils 类是完全线程安全的。类方法,无论是否静态,都会被复制到每个线程堆栈帧,并且不会相互干扰。 Java Utils 类就是很好的例子。
2)
- 如果您的方法非常耗时,那么使其异步调用是有意义的。
关于java - 静态方法、新线程性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3039764/