通用程序设计

45.将局部变量的作用域最小化

可以增强代码的可读性和可维护性,使局部变量的作用域最小化,最有利的方法就是在第一次使用它的地方声明

循环中提供了特殊的机会来讲变量的作用域最小化,作用域被限定在正好需要的范围之内,在循环终止之后不再需要循环变量的内容,for循环优先于while循环

for(int i=0,n=ex();i<n;i++){
		
	}
第二个变量n被用作保存第一个变量的极限值

最后一种使局部变量的作用域最小化的方法是使方法小而集中,如俩个操作在一个方法中,会导致其中一个操作相关的局部变量可能出现在另一个操作中,把俩个操作分成俩个方法
46.for-each循环优化于传统的for循环

47.了解和使用类库

48.需要精确的答案,避免使用float和double

float和double类型尤其不适合货币计算,用BigDecimal,int,Integer或者long进行计算

	public static void main(String[] args) {
		final BigDecimal TEN_CENTS =new BigDecimal(".10");
		int itemsBought = 0;
		BigDecimal funds = new BigDecimal("1.00");
		for(BigDecimal price =TEN_CENTS;funds.compareTo(price)>=0;price = price.add(TEN_CENTS)){
			itemsBought++;
			funds = funds.subtract(price);
		}
		System.out.println(itemsBought+" items bought");
		System.out.println("Money left over:$" +funds);
	}
49.基本类型优先于装箱基本类型
一个操作中混合使用了int和Integer操作,会自动拆箱,如果Integer是null,null和int比较会报空指针异常,频繁拆箱装箱会有性能问题

使用装箱基本类型的几个地方,1.作为集合中的元素,键和值,2.必须使用装箱类型作为类型参数,3.反射调用时,必须使用装箱基本类型

50.如果其他类型更适合,尽量避免使用字符串

字符串不适合代替其他的值类型,,如果是数值,就用数值类型,如果是是否或,用boolean类型

字符串不适合代替枚举类型

字符串不适合代替聚集类型

字符串也不适合代替能力表

51.当心字符串连接的性能

不要使用字符串连接操作符合并多个字符串,除非性能无关紧要,应该使用StringBuilder的append方法,或者使用字符数组,或每次只处理一个字符串,而不是将它们连接起来

52.通过接口引用对象

如果没有合适的接口存在,完全可以用类而不是接口来引用对象

53.接口优先于反射机制

核心反射机制提供了通过程序来访问关于已装载的类的信息的能力,给定一个类,可以获取构造器,方法和域

丧失了编译时类型检查的好处,包括异常检查,如果程序企图用反射方法调用不存在或者不可访问的方法,在运行时会失败

代码笨拙冗长

速度慢

 

54.谨慎的使用本地方法

55.谨慎的进行优化

56.遵守普遍接受的命名规范


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值