java问题,循环外定义变量和循环内定义变量

两者不同点:循环内定义的变量的可用范围显然比循环外定义的变量的范围小,循环内定义的变量会在循环结束后,java垃圾回收机制自动销毁该变量,释放其所占用的内存,而循环外定义的变量则需要在方法返回时去销毁对象,释放内存。所以,如果只是临时的变量,还是循环内定义好些,这样java就不用管理那么多没用...
java问题,循环外定义变量和循环内定义变量
编译成字节码后没有区别,
虽然Object obj放在for内还是for外,从源码层面有个域的区别,但在编译器时优化了,区别在字节码上不存在。

其他因素参与后,编译器会相应调整。语法通不过编译不出来,而编译出来的都优化过了。2012-02-17
两者相同点:每次初始化这个obj时都是重新new一个对象,因此效率上应该没什么区别。两者不同点:循环内定义的变量的可用范围显然比循环外定义的变量的范围小,循环内定义的变量会在循环结束后,java垃圾回收机制自动销毁该变量,释放其所占用的内存,而循环外定义的变量则需要在方法返回时去销毁对象,释放内存。所以,如果只是临时的变量,还是循环内定义好些,这样java就不用管理那么多没用的变量了。2012-02-17
看了上面2个回答哦 我发现了问题 其实系这个lz基础太差..半桶水晃荡啦..扯到字节码..作用域都没理解对 2个{}不同 obj不是指针..怎么说详细..还要说别人错,自己懂.... 楼猪还是做些基本的题吧..2012-02-17
mengvlog 阅读 51 次 更新于 2025-10-30 05:47:29 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部