请问static方法和instance方式执行上的效率问题。 static方法执行方式和instance方法(非static)的执行方式有什么区别,在多线程的情况下会不会有不同的表现?就是说会不会限制在static方法上执行的线程数,方法是没有同步的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 static相对效率要高,不需要为对象分配内存,在多线程的情况表现少有不同 每个线程都去call同一内存区的指令?其实问题可以这样表述:实例的方法会不会占用内存空间? 应该说static快,因为不需要动态绑定 static是常驻内存的,大家都公用这个内存,直到退出去,实例类似,只是不是常驻内存,需要的时候才装入内存。static是一直在内存中,instance却不是,需要时才调入,只是保持唯一性 lye2000000_super的说法对变量是绝对正确的,我想知道的是对于方法体本身的指令会不会每个实例一段内存空间,这在JVM中有没有对应的规范还是每个JVM表现不一样,或者什么地方可以找到相应的资料,谢谢。 楼主要弄清楚两者的区别,都是使用于什么场合,这些东西在java的基本教程里应该都有的. 呵呵呵,整个对象就是一个变量啊。你所说的实例就是放在一个变量中。考虑一下,一个String对象和一个类对象有什么区别呢? lye2000000_super,你的意思是说实例的方法(non-static)就是每个实例各自一段内存空间?好像有点浪费哈。你确认吗?至于String和类对象,本身没有任何实质性区别,换句话说:String的方法,比如toUpperCase,这个方法体是需要内存空间来保存指令的,这个内存空间是每个String一段还是所有的String共用一段? static是最快的,缺点就是长期占用内存 楼上的,我突然有另一个问题,每个object都有class,第一次instance 一个object,其实在jvm中有两个object,一个是class,另一个是object本身,如果这个object长期不用,可能会被gc干掉,那么class呢,不会被干掉吗? 找到答案了,instance方法是每个instance一段内存区间。第二个问题,class一般是不会被卸载的,JVM优化也许会把它卸掉,sun的原话是:“class or interface may be unloaded if and only if its class loader is unreachable. Classes loaded by the bootstrap loader may not be unloaded.” 讨论一下咯 io流 关闭 ====求助,帮忙看看我一个swing写的小程序 求这个逻辑数学题的思路 请大家帮帮忙,我搞的那个JAVA程序设计实在是搞不动了,如果有吧友知道做法的请帮我自拍下!谢谢! (char)System.in.read()对于输入的汉字,为何显示为‘?’ 请教如何用java编程实现对一个Vector删除重复记录,使其只显示一条? 关系运算符 == [50分工大家讨论] 请问有哪些比较好的Java图表控件? 我想学JAVA,请指教 对于一个给定ResultSet,如何能求得它提取数据的表的名称?? JAVA文件保存问题!!!!!!!! 初学者对访问属性的问题
其实问题可以这样表述:实例的方法会不会占用内存空间?
至于String和类对象,本身没有任何实质性区别,换句话说:String的方法,比如toUpperCase,这个方法体是需要内存空间来保存指令的,这个内存空间是每个String一段还是所有的String共用一段?
第二个问题,class一般是不会被卸载的,JVM优化也许会把它卸掉,sun的原话是:“class or interface may be unloaded if and only if its class loader is unreachable. Classes loaded by the bootstrap loader may not be unloaded.”