第四十五条:将局部变量的作用域最小化

将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性。

要使局部变量的作用域最小化,最有力的方法就是在第一次使用它的地方声明。

如果过早的对变量进行声明,首先会造成混乱,对于试图理解程序功能的读者来说,这又多了一种只会分散他们注意力的因素。等到

用该变量的时候,读者可能已经记不起该变量的类型或者初始值了。其次,过早的声明局部变量不仅会使它的作用域过早的扩展,而且

结束得也过于晚了。局部变量的作用域从它被声明的点开始扩展,一直到外围块的结束处。如果变量是在“使用它的块”之外被声明的

,当程序退出该块之后,该变量仍是可见的,变量在它的目标使用区域之前或者之后被意外的使用的话,后果将可能是灾难性的。

几乎每个局部变量的声明都应该包含一个初始化表达式。

如果在循环终止之后不再需要循环变量的内容,for循环就优先于while循环。

时间: 2024-11-05 00:42:38

第四十五条:将局部变量的作用域最小化的相关文章

为什么要将局部变量的作用域最小化?

嗨,本篇文章来说说 Java 的一个小细节:为什么要将局部变量的作用域最小化? 明人不说暗话啊.这篇文章的灵感来源于<Effective Java>,这本书我买了有好长好长一段时间了,书页都已经泛黄,烙下了时间的痕迹,但我仍然还没有把这本书读完.说来惭愧啊. 为什么呢?总感觉这本书的中文翻译有点拙劣,读起来烦闷枯燥.明明感觉作者说得非常有道理,但就是提不起半点兴致. (说完这句话,总觉得有点对不住这本书的译者,毕竟吐槽容易,分享难啊.) 为什么要说这些废话呢,因为怕大家觉得这是不值一提的细节,

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

将局部变量的作用域最小化,可以增强个代码的可读性和可维护性,并降低出错的可能性. 方法: 1.在第一次使用它的地方声明.如果变量在使用之前声明,对于试图理解程序功能的读者来说,多了一个分散注意力的因素,等到用到该变量的时候,可能已经记不起变量的类型或者初始值了. 2.几乎每个局部变量的声明都应该包含一个初始化表达式.如果还没有足够的信息对一个变量进行有意义的初始化,就应该推迟这个声明,直到可以初始化为止.例外,try-catch语句,如果一个变量被一个方法初始化,而这个方法有可能抛出一个受检异常

11、将局部变量的作用域最小化

将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性. 早期的程序设计语言要求局部变量必须在代码块的开头处声明,很多程序员保持这种习惯,但这是不好的.最好的方式就是在初次使用它的地方进行声明,否则等到运用的时候可能已经记不起这个变量名称,或者类型,这对于开发来说,或者阅读代码的人来说都是一件分散注意力的因素. 而如果在开头处声明,通常意味着它可以被应用到多个域当中,那你就可能在别的域中误用这个变量,尤其是在现今代码拷贝成习惯的开发日常,而从编译角度讲,代码是没有错误的,所

第八章:通用程序设计。ITEM45:将局部变量的作用域最小化。

1.将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性.在 C 语言中要求局部变量必须在一个代码块的开头处进行声明,出于习惯,有些开发者延续了这样的做法. 这个习惯需要改正,Java 提供了你在代码块的任何地方声明变量的语法支持. 2."要使局部变量的作用域最小化,最有力的实践就是在第一次使用它的地方声明".如果过早的声明,开发者就有可能在真正使用该变量的时候忘记了它的类型或者初始值了,而且也会带来代码块内变量名的名字污染问题,由此引发的 Bug,往往是令人极

Java之路(六) 局部变量作用域最小化

将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性. 将局部变量的作用域最小化的方法有: 方法1:在第一次使用某个局部变量的地方进行声明. a.Java可以在任何可以出现语句的地方声明变量. 这条规则可以让我们在需要的地方声明变量,从而缩小作用域,如果没有这个前提,后面的一切都不成立了. b.过早的声明局部变量不仅会是它的作用域过早的扩展,而且结束的过于晚了. 要正确理解这句话.局部变量的作用域从它被声明的点开始扩展,一直到外围块的结束处.见下图: 如果变量是在“使用它

How Javascript works (Javascript工作原理) (十四) 解析,语法抽象树及最小化解析时间的 5 条小技巧

个人总结:读完这篇文章需要15分钟,文章介绍了抽象语法树与js引擎解析这些语法树的过程,提到了懒解析--即转换为AST的过程中不直接进入函数体解析,当这个函数体需要执行的时候才进行相应转换.(因为有的函数体只是声明了,并没有实际被调用) 解析,语法抽象树及最小化解析时间的 5 条小技巧 这是 JavaScript 工作原理的第十四章. 概述 我们都知道运行一大段 JavaScript 代码性能会变得很糟糕.代码不仅仅需要在网络中传输而且还需要解析,编译为字节码,最后运行.之前的文章讨论了诸如 J

AngularJS进阶(四十)创建模块、服务

AngularJS进阶(四十)创建模块.服务 学习要点 使用模块构架应用 创建和使用服务 为什么要使用和创建服务与模块? 服务允许你打包可重用的功能,使之能在此应用中使用. 模块允许你打包可重用的功能,使之能跨应用使用. 一.应用程序模块化 先看看一个没有模块化的程序 <!DOCTYPE> <!-- use module --> <html ng-app="exampleApp"> <head> <title>Angluar

【图灵学院】Java架构师要掌握哪些技能?你所不知的十五条秘密

苦苦工作累积经验,却还是奋战在一线的"菜鸟"码农,不知道成为Java架构师要掌握哪些技能?熬不完的夜,想要升职加薪?看了很多书还是写不出最高效的代码,花了很多钱学习网课还是不见成效?遇到我图灵学院江南老师那就对了,少侠我看你骨骼清奇,是个奇才,请收下我深藏已久的升(kui)职(hua)宝典. 成为Java架构师要掌握哪些技能?请看下面这十五条: 1.想成为Java架构师,首先你要是一个高级java工程师,熟练使用各种框架,并知道它们实现的原理: 2.掌握jvm虚拟机原理.调优,懂得jv

无限互联奖学金文章连载北京总部四十九期胡梦川 第一篇

无限互联奖学金文章连载北京总部四十九期胡梦川 第一篇: 今天是来到无限互联的第四天,严格来说已经第六天了,刚来就是开班典礼,给人一种很好的氛围.老师讲了很多关于以后学习的技巧和规定,我的第一感觉是,比备战高考还要严格,不过这才能体现一个组织的负责任.正式开讲才感觉到这个班级的大神无处不在,不努力根本赶不上,就是这个学习氛围和高强度的练习很重要.多用心你才能感觉到有些事其实很简单.关于学习时间大家基本都是一天不动的在敲代码,等于给自己一个机会吧.时间飞逝,抓住机会才重要.刚来第一周,感受最深就是好