Java中对变量范围转换引发的思考
程序中,变量活动范围有:方法/函数(局部)里的,成员变量(全局变量)
当一个变量从局部变量升级到全局变量,该变量可以跨方法使用,因此在一个方法里对该变量赋值,在另一个方法里就能马上感知到并获取变量的值,体现着监听设计思想。
变量升级,并不是都带来了好的方面。一个变量升级后,就要求程序员考虑是否需要对这个变量进行维护。(所谓维护就是该变量是否处在一个循环中)如果需要维护,即变量处在循环中,则要考虑是否需要对该变量进行初始化和善后处理(因为全局变量是和其他变量或方法相互联系的)如果需要,则进一步考虑变量在循环中从0次,到1次,到2次的变化过程,并从这三次变化过程中提取规律。如果获取规律?程序员的经验以及一些更底层的规律。
把一个变量从局部编程全局的途径有如下方法:
1)利用java语言的特性,从方法变量编程成员变量
2)java语言特性,编程静态变量
3)通过单例,存储在手机内存中
4)放在Application中(严格说,这种方法其实也属于3)中的单例法)
5)存储在本地,需要用到的时候,再从本地获取。比如SharedPeference,IO流写入和读取。
以便变量从全局变量降级成局部变量,带来的好处就是降低了变量维护难度。只需要在该方法作用范围内考虑,同时对变量个体而言,作用范围的缩小,自然增加了变量作用的安全性。
由此,还可以推广到逻辑思考切入点事宜。
一个问题,肯定是处在特定的范围或事件中的。澄清前提,划清界限很有必要。解决一个问题,修复一个bug,首先需要把这个bug产生的起始点找到,这个起始点有时候是浮动的,可以往前多些,也可以往后移些。找到bug的起始点后,还要清楚这个bug的结束点。在这起始点和结束点之间的这一段范围里,我们去修改这个bug。为了定位bug,有时候当第一直觉和感知还无法定位bug的时候,就需要对这一段范围进行切割分段。如何切割?切割的依据是什么?这里涉及到责任链,可以选取一个范围大小的责任链作为参考进行分割,其实也即是业务逻辑功能模块来分割。然后定位到某一段时,再次分割。
这种循序渐进的方式,带来了逻辑的严密,bug就不容易被我们漏过。面对问题,只要有严密的思路和逻辑对bug和问题进行分解、拆分,加上有效时间的累积实践和反馈,就一定能找到解决和修复的方法。
Java中对变量范围转换引发的思考相关推荐
- java中把map转换成list
private String key; private String value; //把map转换成list的公共方法 public static List map ...
- Java中两数交换引发的值传递问题及解决方案
Java中两数交换引发的值传递问题及解决方案 今天导师分享了一个有趣的代码,记录一下,让我们一起看看~ //交换两个整数 private static void swap(int i, int j) ...
- java 父类强制转换为子类_[java]Java中父类强制转换成子类的原则
Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用. 例: public class Test { public static void main(Str ...
- java中文转简拼_如何将java中的汉字转换成简拼
有不少小伙伴们在使用java的时候会在想如何将java中的汉字转换成简拼呢?其实将java中的汉字转换成简拼是一件很简单的事情,那么下面我们就和爱站小编一起去学习学习吧. public static ...
- java中带符号十六进制转换成十进制详解
java中带符号十六进制转换成十进制详解 代码如下 代码如下 必须拿ffff进行测试,否则测不出异同 public void test1(){String strHex="ffff" ...
- java整数能强转转字符,Java中数据类型默认转换和强制类型转换
默认转换: a:由低到高一次为:(byte short char )---int ---long ---float --- double b:注意:byte short char ...
- java中的缩小_在Java中,加宽转换(隐式)和缩小转换(显式)之间有什么区别?...
Java中的类型转换用于将一种类型的对象或变量转换为另一种类型.当我们将一种数据类型转换或分配给另一种数据类型时,它们可能不兼容.如果合适的话,它将顺利进行,否则会丢失数据. Java中的类型转换类型 ...
- Java中由substring方法引发的内存泄漏
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 在Java中我们无须关心内存的释放,J ...
- Java中的XSL转换:一种简单的方法
XSL转换 (XSLT)是将一个XML文档转换为另一个XML文档的强大机制. 但是,在Java中,XML操作相当冗长和复杂. 即使是简单的XSL转换,也必须编写几十行代码-如果需要适当的异常处理和日志 ...
最新文章
- 美卫星拍最详细3D地图 覆盖地球99%大陆
- c#学习之基础篇(filter 筛选器)
- Matrix 矩阵
- Yii AR Model 查询
- 手把手教你Tomcat配置环境变量以及验证方法
- 【计算机网络】——流量控制与可靠传输机制
- 数据结构(十六)多源最短路径
- Android中插件开发篇之----类加载器
- 周报_2013第02周(2013/01/06-2013/01/12)
- Vivado ROM IP核
- java 正则表达式匹配冒号_用于匹配与冒号连接的单词对的正则表达式
- 二十一世纪大学英语读写教程(第二册)学习笔记(原文)——5 - Holding Onto a Dream(坚持梦想)
- 15个免费好用的抓包工具
- iOS系统语音播报文字
- 东莞比较好的java培训学校,先收藏了
- 解决Windows server 2003不认U盘
- sudo进入root权限时,sudo :unable to resolve host me(此为你的Linux登录用户名): Connection timed out.
- 蓝屏代码WHEA_UNCORRECTABLE_ERROR,一次蓝屏但是没有dump日志的一次维修电脑经历
- [慈溪2012]书架(bookshelf)
- 普林斯顿微积分读本篇九:指数函数和对数函数