在代码块的开头就声明局部变量不是个好习惯,要改

local variable应该在第一次使用的地方声明,过早的声明会分散阅读程序人的注意力(这个变量干嘛用的?)

⭐️ 局部变量声明时就应该进行“有意义”的初始化,但下面情况是个例外

int i = initialize();//有意义的初始化,但initialize方法抛出受检异常,必须进行try catch
otherOpt(i);

initialize()方法抛出异常,必须进行try catch

int i=-1;//没有实际意义
try{i = initialize();
}catch(xxxException e){e. e.printStackTrace();
}
otherOpt(i);

⭐️ 循环终止后不需要使用循环变量,则for 优先于 while

我们来找一找下面程序的bug

public void m(){Iterator<Element> i = c.iterator();while (i.hasNext()) {doSomething(i.next());}...Iterator<Element> i2 = c2.iterator();while (i.hasNext()) {doSomethingElse(i2.next());}
}

使用for就会避免这样的bug,不仅如此,for还更简短,可读性更好

⭐️ 另一种对for的用法

for (int i = 0, n = expensiveComputation(); i < n; i++) {... // Do something with i;
}

⭐️ 使用小方法实现“局部变量作用域最小化”

public void m(){int i = 10;// 使用i...int j = 20;// 使用j...
}
//-----------------下面使用小方法--------------------
public void m1(){int i = 10;// 使用i...
}public void m2(){int j = 20;// 使用j...
}
public void m(){m1();m2();
}

第57条:将局部变量的作用域最小化相关推荐

  1. Effective Java~57. 将局部变量的作用域最小化

    优先选择 for 循环而不是 while 循环 例如,下面是遍历集合的首选方式 // Preferred idiom for iterating over a collection or array ...

  2. effective java第45条:将局部变量的作用域最小化

    我以前写for循环的例子: public class Client {public static void main(String[] args) {Client client = new Clien ...

  3. Effective Java之将局部变量的作用域最小化(四十五)

    这条规则应该是我们平常容易遵守的规则. 我们很少会把所有的局部变量在程序的开始就声明出来,大部分人还是习惯在第一次使用它的地方声明.原因很简单,写起来容易,别人读起来也好读. 对于平时写代码写的多的人 ...

  4. 57条经验之谈 转载(非常不错,我收藏了)

    自1999年起我就开始发掘一些科技公司,并帮助它们运营.我最近的一个公司是fabulis.com.下面是从干这行中得到的57条经验.我可以列出更多,但恐怕会令你厌烦. 1. 做你个人有热情的事情.你是 ...

  5. 平面上给定n条线段,找出一个点,使这个点到这n条线段的距离和最小。

    题目:平面上给定n条线段,找出一个点,使这个点到这n条线段的距离和最小. 源码如下: 1 #include <iostream> 2 #include <string.h> 3 ...

  6. 【转】从3个科技公司里学到的57条经验

    好文,这种文章就该收藏加转载! =============================================== 外刊IT评论网站上曾发表博文<从3个科技公司里学到的57条经验&g ...

  7. 从3个科技公司里学到的57条经验(转)

    从3个科技公司里学到的57条经验(转) 外刊IT评论网站上曾发表博文<从3个科技公司里学到的57条经验>,此文是<57-things-ive-learned-founding-3-t ...

  8. C语言基础1:初识C语言(转义、注释;数组、操作符、反码、补码、static、define、指针、结构体常变量;局部变量;作用域、生命周期)

    文章目录 C语言基础1:初识C语言 1.C语言简介 1.1什么是C语言 1.2C语言的发展 2.第一个C语言程序 2.1创建项目 2.2添加源文件 2.3写代码 3.数据类型 4.变量.常量 4.1定 ...

  9. 认清JavaScript和JAVA全局变量和局部变量的作用域

    认清JavaScript和JAVA全局变量和局部变量的作用域 2010年2月28日 george 发表评论 阅读评论 通过淘宝面试题来认清JavaScript和JAVA全局变量和局部变量的作用域 注意 ...

最新文章

  1. python 变量聚类 proc varclus_使用SAS进行简单的聚类分析讲解
  2. 中国雪糕红黑榜,谁才是Top 1
  3. find到带空格文件名用xargs处理的技巧
  4. python def return 文件_python基础-文件处理与函数
  5. mysql online ddl 5.6_MySQL 5.6的Online DDL功能测试
  6. 高性能分页REST API查询生成器
  7. 智能android电视更换播放器,GitHub - qfwc258/TvPlayer: android智能电视播放器,可以播放各电视台节目,播放基于ijkplayer的实现。...
  8. redmine全记录(更新)
  9. html页面批量打印EMS快递单,如何批量打印快递单/电子面单?
  10. java布道师_JavaWeb主管布道师
  11. 倍数(Python)
  12. 运行 RoCEv2 的网络注意事项
  13. 【Flume】(四)IDEA编写自定义拦截器
  14. C++输入0结束循环
  15. .ttf字体文件引入vue项目及使用
  16. 苹果微信多开,苹果手机为什么不支持
  17. 2010年知名大企业工资大曝光
  18. C语言是如何诞生的?地位怎样?未来发展趋势?
  19. smbd cpu高 linux,samba – smbd进程在不间断的睡眠中
  20. php许愿墙参考文献,许愿墙论文,关于我家的许愿墙相关参考文献资料-免费论文范文...

热门文章

  1. hive中如何把13位转化为时间_【hive常用函数一】日期函数
  2. c语言增加动态分配的存储空间吗,C语言 关于内存动态分配问题
  3. antd select option 设置字体颜色_匹配颜色是照片合成重要关键点
  4. 使用计算机控制台方法,故障控制台使用方法
  5. 计算机二级之Office应用之Excel中的函数(3)
  6. 计算机电缆检测报告,天联牌计算机电缆详细介绍
  7. Python中fastapi构建的web项目使用.gitlab-ci.yml文件在KubeSphere中进行自动部署
  8. 普通的Spring Web项目正常启动,在访问某些JSP页面时,页面会报错 http://java.sun.com/jsp/jstl/core
  9. php微信公众号测试号token配置失败,微信公众号Token配置失败解决办法
  10. php 清除内容中的bom,检查并清除php文件中bom的函数