T1:变量定义放在哪里?
老版c语言变量定义必须放在一个方法的最前面。但是c99之后就没有这个限制了。而java没有限制,java核心技术这本书中推荐将定义放到第一次使用之前,不要过早定义。
但是这个毕竟是建议
变量全部在开头定义有人觉得看起来舒服,代码层次清晰。
变量放在第一次使用之前定义,有一个可能的好处就是可以避免系统为变量开辟空间的开销。
例如以下伪代码
Address a = null;//定义一个地址对象用来存放地址,jvm需要构造a并分配空间,如果用不到还需要gcc回收,但是a又不是一定会被用到。所以这部分开支可能是一种浪费。
if(person.isMoved())
throw Exception;//如果人员已经搬家,抛出异常,程序终止
a = person.GetAddress();//没有搬家就获取该人员地址。
T2:为什么要有常量?
java常量和其他编程语言的常量作用一样是用来表示一些不变的量。所以使用final修饰的变量只能在初始化的时候被赋值一次,之后再也不能改变。这样做有如下好处,
1.如果需要对常量的值进行修改可以直接修改最初的赋值即可,不需要找到每一个使用该常量的地方。
2.java的优化器会判断常量是不会改变的,所以会将常量放入寄存器中,可以加快访问速度。
3.在多线程编程中,使用常量可以方便数据同步而不需要使用复杂的同步机制来保护数据的一致性。
更多参见http://blog.csdn.net/shengsummer/article/details/44354381
T3:将不会被外部调用的方法声明为private是一个好习惯
有些时候我们定义一个方法,往往为了方便,将一个本来智慧在本类内部使用的方法随意声明为public。这样虽然没有什么影响,但是后面如果有人来维护这段代码时,如果发现发现这个方法需要使用新方法替换。但是由于你声明为public,所以就没办法知道是不是有类依赖了这个方法,从而不敢轻易删除已经被替换的方法。从而导致代码越来越乱。所以有意的声明private方法是一个好习惯。