通用程序设计

目录

通用程序设计

涉及内容:
1.局部变量处理
2.控制结构
3.类库用法
4.各种数据类型用法
5.reflection和native method

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

1.最小化局部变量的作用域,最有力的方法就是在第一次使用它的地方声明.
2.几乎每个局部变量的声明都应该包含一个初始化表达式
如果没有足够的信息来对一个变量进行有意义的初始化,就应该推迟这个声明,直到可以初始化为止(try-catch例外).
如果循环后不再需要循环变量的内容, for循环就优先于while循环

2.for-each循环优先于传统for循环

// 传统for循环遍历集合
for (Iterator i = c.iterator(); i.hasNext(); ) {
    doSomething((Element) i.next()); // JDK1.5之前
}
// 遍历数组
for (int i = 0; i < a.length; i++) {
    doSomething(a[i]);
}

JDK1.5之后for-each完全隐藏迭代器和索引变量,避免混乱和出错

// for-each 遍历数组或集合
// 代码更加简洁,同时预防bug
for (Element e : elements) {
    doSomething(e);
}

但以下3种常见情况无法使用for-each
1.过滤, 如果需要遍历集合并删除指定的元素
2.转换,如果需要遍历集合并取代它的部分或全部的元素值
3.平行迭代,如果需要并行地遍历多个集合

3.了解和使用类库

不要重复造轮子

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

float和double类型不适合用于货币计算,如果从事金融领域的业务开发,有涉及到金钱的计算更应该避免使用这两种类型.
可以使用BigDecimal, int或long进行货币计算.

5.基本类型优于装箱类型

Java有8种基本类型,同时对应8种装箱类型.

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

1.字符串不适合代替其他的值类型
程序从网络、文件等读取数据后,通常以字符串形式存在.有一种自然倾向是让它继续保留字符形式,但只有这段数据确实是文本信息时才是合理的.
如果它是数值,就应该被转换为适当的数据类型,比如int, float.
2.字符串不适合代替枚举类型
3.字符串不适合代替聚集类型
4.字符串不适合代替capabilities

7.小心字符串连接的性能

8.通过接口引用对象

// 声明变量时应使用接口类型而不是具体的类型
// good use interface as type
List<String> ls1 = new ArrayList<>();
// bad use class as type
ArrayList<String> ls2 = new ArrayList<>();

9.接口优先于反射机制

使用反射的劣势
1.时区编译时的类型检查
2.执行反射访问的代码非常的冗长,阅读性差
3.性能损失

10.慎用native method

没遇到过

11.谨慎地进行优化

12.遵守普遍接受的命名惯例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值