一、如果其他类型更适合,则尽量避免使用字符串

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

  2. 字符串不适合代替聚合类型,例如:

String compoundKey = className+ "#" + i.next;

      该实体有多个组件,不适合用一个字符串来表示,易发生混乱,为了访问单独的域,必须解析该字符串,此过程很慢、很繁琐也很容易出错。更好的做法是未这个数据集编写一个类。

  3. 字符串也不适合代替能力表,能力即为不可伪造的键。有时某些服务需要客户端提供唯一的字符串键,但是若两个客户端各自决定使用相同的名称,无意间就共享了这个变量,安全性会很差。要解决这个问题,只要用一个不可伪造的键(能力)来代替字符串即可。

二、了解字符串连接的性能

  1. 字符串连接不适合用在大规模的场景中。为连接n个字符串而重复地使用字符串连接操作符,需要n的平方级的时间。因为字符串不可变,导致要进行连接,两个字符串的内容都需要拷贝。

  2. 若项目数量巨大,为了获得可以接受的性能,请用StringBuilder代替String。

《EffectiveJava》P231~P234

    

最新文章

  1. 基于DotNetOpenAuth的OAuth实现示例代码: 获取access token
  2. AD域登录验证
  3. PHP 源码学习之线程安全
  4. Java for LeetCode 236 Lowest Common Ancestor of a Binary Tree
  5. CentOS安装Erlang
  6. 慕课网-安卓工程师初养成-2-1 Java中的关键字
  7. Java设计模式之--代理模式学习
  8. HW4.36
  9. Understanding the Android Life Cycle
  10. Head First设计模式之解释器模式
  11. Parallel中分区器Partitioner的简单使用
  12. ucsc 文件格式说明
  13. Counting Bloom Filter
  14. CCRenderBuffer初始化中的render state参数
  15. 【Android 应用开发】Android 开发错误集锦
  16. hass连接设备
  17. curl命令行
  18. ARMV8 Procedure Call Standard
  19. EasyUI+bootsrtap混合前端框架
  20. HLJU 1046: 钓鱼(数据增强版) (贪心+优化)

热门文章

  1. mysql 生成数据字典sql语句
  2. 【TencentOS tiny】深度源码分析(2)——调度器
  3. HeidiSQL、Navicat、mysql命令和source命令导入sql脚本的速度比较
  4. JVM系列一:JVM内存模型
  5. Python_文本的读写操作
  6. msf假冒令牌
  7. pycharm2018.2汉化 解决设置打不开问题
  8. KMP算法复习笔记
  9. luogu P3878 [TJOI2010]分金币
  10. [HDU5955]Guessing the Dice Roll