A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a_good 中级黑马   /  2014-6-15 23:24  /  1054 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

自己在写循环的时候 发现条件和 循环里面不能定义类型           while(( String s=br.readLine())!=null)
难道java不给这样吗  要是我真的只想他的作用域就在 while里面怎么办

评分

参与人数 1黑马币 +5 收起 理由
远行的人2号 + 5 很给力!

查看全部评分

8 个回复

倒序浏览
for循环里的变量可以定义在for语句里的。因为它的初始语句只执行性一次。如果在while循环的条件判断语句里定义变量,那是极其浪费内存的,判断条件每循环一次就会执行一次,就会再创建一个对象。再说你在()里定义变量,
那你还能控制该对象吗?对象会不断的被创建出来。

点评

原来如此!!  发表于 2014-6-16 13:07
回复 使用道具 举报
就算可以,也不建议放在那里吧,每次执行一次循环就创建一个对象,多占内存,效率得多低。
回复 使用道具 举报
java木 发表于 2014-6-15 23:35
for循环里的变量可以定义在for语句里的。因为它的初始语句只执行性一次。如果在while循环的条件判断语句里 ...

可是我再while里面的一个If条件句里面定义一个StringBuilder也不行啊   
回复 使用道具 举报
黎志勇 发表于 2014-6-15 23:51
就算可以,也不建议放在那里吧,每次执行一次循环就创建一个对象,多占内存,效率得多低。 ...

放下面也是每次循环就会执行啊  
回复 使用道具 举报
又学习到了,以前没想过这个问题……
回复 使用道具 举报
xp8812 中级黑马 2014-6-16 13:32:04
7#
这个问题很有让我学习到了
回复 使用道具 举报
放下面?你是指在条件判断语句下面?那是为什么?要是必须那样那也没办法了。我只是说用for循环会比较节省内存。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马