请教一个问题 在class里定义的一个变量,若全局没被用到,会在编译时被优化移除掉吗?如果这个变量是static的呢?如果再加public的呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你的变量是在class类中方法外面,就是所谓的全局变量的话,他的生命周期跟static静态变量一样,都是程序结束了才销毁,如果是方法体内定义的变量,程序只要走出变量所在的方法,变量就会销毁,不管你有没有定义public修饰符 都是一样 你好,我问的不是变量的生命周期,而是说这个变量没有被使用到的话,会不会在编译后,被编译器优化算法给移掉?恩,我上面已经说了,如果是全局变量的话只要创建了,程序结束了才销毁(意思就是说不管你使用还是不适用这个对象他还是存在的,除非程序结束了他才销毁)这不需要程序运行啊,所以无关乎创建销毁。我只是想知道编译后的结果。即反编译后那些没使用到的变量还在不在。我自己测试出来了。1)对所有属于class的变量不做优化移除,即使它没有被使用时。2)对所有属于method内部的变量优化后移除,如果它没有被使用时。测试环境是jdk1.6 你好,我问的不是变量的生命周期,而是说这个变量没有被使用到的话,会不会在编译后,被编译器优化算法给移掉?恩,我上面已经说了,如果是全局变量的话只要创建了,程序结束了才销毁(意思就是说不管你使用还是不适用这个对象他还是存在的,除非程序结束了他才销毁)这不需要程序运行啊,所以无关乎创建销毁。我只是想知道编译后的结果。即反编译后那些没使用到的变量还在不在。我自己测试出来了。1)对所有属于class的变量不做优化移除,即使它没有被使用时。2)对所有属于method内部的变量优化后移除,如果它没有被使用时。测试环境是jdk1.6哦,你是说编译后,还没程序运行,这个在内存应该是不存在的,但是如果你保存的话,会保存在.java文件中,但你说的优化移除我就不懂了!! 在MyEclipse里面写JavaScript好像有点问题 100分 请教内部类 内存问题 这个错误怎么解决啊 java 1.5下怎么编译? 决定了-放假去考scjp 求一个socket简单得例子程序!谢谢 关于jtree中DefaultTreeCellRenderer的问题,请各位高手帮忙! 请看这段代码(很短的) 高分请教excel问题? 求几个完整的Java程序,什么内容的程序都行,要包含工程文件和全部源文件,主要用于学习,发者就给分。 SWT中浏览器对象怎么使用相对路径显示本地html页面? merge into 变量绑定问题
我自己测试出来了。
1)对所有属于class的变量不做优化移除,即使它没有被使用时。
2)对所有属于method内部的变量优化后移除,如果它没有被使用时。
测试环境是jdk1.6
你好,我问的不是变量的生命周期,而是说这个变量没有被使用到的话,会不会在编译后,被编译器优化算法给移掉?恩,我上面已经说了,如果是全局变量的话只要创建了,程序结束了才销毁(意思就是说不管你使用还是不适用这个对象他还是存在的,除非程序结束了他才销毁)这不需要程序运行啊,所以无关乎创建销毁。我只是想知道编译后的结果。即反编译后那些没使用到的变量还在不在。
我自己测试出来了。
1)对所有属于class的变量不做优化移除,即使它没有被使用时。
2)对所有属于method内部的变量优化后移除,如果它没有被使用时。
测试环境是jdk1.6
哦,你是说编译后,还没程序运行,这个在内存应该是不存在的,但是如果你保存的话,会保存在.java文件中,但你说的优化移除我就不懂了!!