在循环中申明变量会导致不良后果吗? 当然会,就等于说你实例了100个badString! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不会,对于String只会有一个实例, loveyousomuch 的对,上边我说错了,sorry 不同意楼上朋友的说法。无所谓,无论你的引用在for的内部还是外部声明,100个String实例都是要在内存中创建的。而且从控制变量的作用域的角度出发,就是应该在for的内部声明变量。关于变量声明的一个好的规则就是:直到你在要求的作用域内真正要用到它的时候,才去声明它。 补充,对于楼主的样例程序,就像bclin(橙子)说的,内存空间只有一块,因为new String ("Hello, world!");的具体内容是以字符串常量形式创建的,jvm会自动到常量池里面去找"Hello, world!"而无需每次都开辟新的内存空间。但是,如果String不是以字符串常量方式声明的话,就必须开辟新的内存空间。btw,楼主的样例程序是没有实际意义的。 变量在java中都是引用,如果在循环中声明变量,那么就意味着要进行100次的创建;如果在循环外声明变量,那么就只是重新赋值而已 变量在java中都是引用,如果在循环中声明变量,那么就意味着要进行100次的创建;如果在循环外声明变量,那么就只是重新赋值而已 变通啦,如果你觉得没有明显的慢就用,反之则在外面声明。没有定式的……:)另,new会依次分派1..100个对象。只不过只有一个被引用,可以不用去管,让gc忙去吧! 一个jdbc连接池类,欢迎拍砖! 请问一个关于使用过变量的问题,在工具中。等待英雄!!! 一个关于线程的问题 关于进度条显示数据库操作的进度 递归问题! 一个时间验证的问题? TextField怎样限制只能输入数字? xml中的<IDOCTYPE ....被干掉了。 请问如何用Solaris的脚本来跑java程序?如何停止?用kill么,怎么用? 拜托…… “init()方法”与 “构造函数”之间区别? 问一个关于异常的问题
如果在循环中声明变量,那么就意味着要进行100次的创建;
如果在循环外声明变量,那么就只是重新赋值而已
如果在循环中声明变量,那么就意味着要进行100次的创建;
如果在循环外声明变量,那么就只是重新赋值而已