为什么静态方法会导致性能下降

J2EE 码拜 8年前 (2016-03-15) 1178次浏览
http://bbs.csdn.net/topics/90430672
这个帖子的回帖说的,还有回帖说的“一直占用内存不释放”是为什么
解决方案

10

先不考虑内存存放方式,仅从逻辑上讲,假如一个方法没有使用到类的属性(成员变量),那么本人认为应该设计成静态方法。
方法实例化的意义在于方法里用到的变量有类的实例属性,类的实例属性是需要实例化的,那么方法也只能使用实例方法。
没有用到类的实例属性的方法,设计成静态方法,直接调用就可以了,这样做比较简单,而且含义明确。
以上仅仅是逻辑上的考虑,效率上,实例方法要实例化,这部分是要影响效率的,至于上面说的静态方法和实例方法存到的内存区域不同导致的效率差别,这方面本人没什么研究,也很希望能看到高手解答。

10

引用:
Quote: 引用:

static静态的,可以直接引用:

方法放方法区里,怎么会放栈里面呢?

方法调用主要耗用的是栈内存和堆内存,也就是一个线程调用一个方法的时候会给方法分配一个栈帧,栈帧里面存储你在方法里定义的局部变量等一些东西,局部变量引用的对象可能会存储在堆内存和方法区中。
你这句:方法存在方法区,本人不知道你从哪看来的,绝对是错误的。
方法区主要存储类信息,常量,局部变量。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明为什么静态方法会导致性能下降
喜欢 (0)
[1034331897@qq.com]
分享 (0)