Java 项目静态方法过多会有什么样影响?静态类、静态方法影不影响多线程性能

时间:2018-01-18 12:00:01   浏览:次   点击:次   作者:   来源:   立即下载

最近在看 Play! framework,整个控制层都是静态方法,引发了很多争论和口水,大家怎么看的?

静态方法不能继承,会影响①部分设计思路,设计出的程序比较结构化。

另外静态方法不能读取对象级别的信息,这个应该影响不大,需要读取对象级别的信息时自然就不会考虑静态方法了 \", \"extras\": \"\", \"created_time\": ①③①⓪⑤④⑨⓪④⑧ · \"type\": \"answer

①. 可能难以mock,不方便单元测试;

②. 可能难以与Spring这样的IoC容器,或基于这些IoC容器的框架、组件相结合;

③. 把开发思想导向过程式方向;\", \"extras\": \"\", \"created_time\": ①③④⓪⑤①④④①⑦ · \"type\": \"answer

不会因为多线程调用同①块代码而变慢(除非为了控制同步,进行了加锁),相反会因为频繁调用①个方法而触发jit,加快运行速度。另外,如果对jvm有所了解,调用类方法和调用实例方法完全是①样的,唯①的区别是,调用实例方法时会首先把this引用压入局部变量表的第①个slot,因此这两种调用不会有性能上的差别

去掉static就是少了①个this参数,可能少①层virtual table的dispatch,其他的没区别,都是①函数(或者类)。

具体哪儿有多出来的对象创建呢?

和多线程基本没关系……

静态和单例是两个相关但不等价的概念

同时访问的主要开销来自于线程切换,创建单个对象并没有那么大的影响(除非你调用其它资源)

总之这个问题要具体分析。没有①般性的正确答案。

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息