java小白求助 关于内部类的问题 快绕晕了 如题,局部内部类如果直接使用方法参数,方法参数必须为final,有的说是为了扩大生命周期,有的说是为了防止修改参数。我快被绕晕了。这到底是为什么?????希望大神解答。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 防止修改数据感觉正确性高些 方法实例总是在线程栈上,而对象总是在堆中。方法实例是暂时的,其内容是易变的;对象的生命期则相对很长,内容也比较确定:方法实例在每次方法被调用时产生,当方法return时即被销毁。而对象则不会在类的构造器return时被销毁,相反它会一直存在,直到被当作垃圾回收掉。由于变量的内容随时可能改变,变量创建时的值可能与方法return时的值(如果其还存在)完全不同 所以就会导致无法确定到底是哪个变量的值 解决方法便是不能变的final 嗯 我就知道这么点 主要是内部类的和方法里的参数生命周期不一样,如果内部类用方法里的局部参数,不加final的话就可能会出现访问不到的问题,所以加个final延长参数的生命周期,使内部类在使用的时候可以访问到,不会出现访问不到的错误。同时也解决了参数被其他方法改变,使数据出现不一致的错误。也就是说为了扩大生命周期,为了防止修改参数都是成立的,只不过是从俩个角度去考虑的而已。而final的出现解决了这两个问题。 你可以反编译一下内部类的class文件,实际上编译器在内部类中创建了成员变量指向外部变量,所以如果外部变量可以修改,但是内部使用的实际上是最初赋值的那个引用,它不会跟着外部变量的修改二修改,这个就造成了不安全 <求助啊!>哥哥姐姐们帮我看下这个问题是咋回事了 请教一个J2SE入门的问题 请教JCOM使用的一些问题 用javamail包取的邮箱中的附件和邮件内容 关于文件操作的问题 有个弱问题 利用itext生成pdf多页报表 ------在线等待中 大家帮我看看这片代码到底是做什么用的?我怎么没有看明白呢????? 这是http://java.sun.com/j2se/1.4.2/docs/api/提供的源程序,我有2个问题 API怎么解释? jasperreports3.1.2旧版如何使用扩展字体,pdf导出“黑体”中文空白 关于线程捕捉异常的问题
方法实例总是在线程栈上,而对象总是在堆中。
方法实例是暂时的,其内容是易变的;对象的生命期则相对很长,内容也比较确定:
方法实例在每次方法被调用时产生,当方法return时即被销毁。而对象则不会在类的构造器return时被销毁,相反它会一直存在,直到被当作垃圾回收掉。由于变量的内容随时可能改变,变量创建时的值可能与方法return时的值(如果其还存在)完全不同 所以就会导致无法确定到底是哪个变量的值 解决方法便是不能变的final 嗯 我就知道这么点