`

Effective java --读书笔记50-52

阅读更多
/**
* 8-50
* 如果其它类型更适合,则尽量避免使用字符串
*  字符串不适合代替其它的值的类型. 当一段数据从文件.网络或者键盘设备.进人到程序中后,他通常是以字符串形式存在.
* 有一种自然的方法就是直接使用此字符串.但是.只有当这段数据本质上确实是文本信息.这种方法是合理的.但是如果他是数值,
* 就应该转换为数值类型.比如int double或者其它的数值类型;我想这里就可以使用用valueof()的方法 但是
* 到api中查了一下发现
* 
* public static Integer valueOf(String s) throws NumberFormatException
   {
return new Integer(parseInt(s, 10));
   }
   只是string的方法 将一个String类型转换为Integer类型.他新创建了一个Integer 增加了开销
   我认为在使用方便的前提下.还是先不转换.等做完必要的操作后再统一转;
*   总之:如果可以使用更加合适的数据类型.或者可以编写更加合适的数据类型,就应该避免用字符串表示对象若使用不当,字符串会比其它类型
* 更加笨重.更不灵活 速度更慢,也更容易出错经常错误地使用字符串的类型包括基本数据类型,枚举类型.和聚集类型;
* 8-51
* 当心字符串连接的性能; 
* 原则很简单,不要使用字符串链接操作符(就是加号)合并多个字符串.除非性能无关紧要.相反.应该使用sringbuider
* 的append方法;或者使用字符串数组
* 这是api中对stringbuider的评价
* 一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。
* 该类被设计用作 StringBuffer 的一个简易替换,
* 用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。
* 如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。
* 再看看stringbuider中的方法 全是apend和insert这些不同类型参数的方法
*
* 8-52
* 通过接口引用对象
* 养成这样的声明习惯:
* List list = new ArrayList();
* 这样当你要换实现类的时候容易 但要求是你的操作不要有原来实现类中特有的特性;
* @author leader
*
*/
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics