zoukankan      html  css  js  c++  java
  • EffectiveJava-3

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

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

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

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

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

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

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

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

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

    《EffectiveJava》P231~P234

        

  • 相关阅读:
    Hard Rock
    Codeforces Round #416 (Div. 2) B. Vladik and Complicated Book
    codeforces 793B. Igor and his way to work
    codeforces 1B Spreadsheets
    HDU 1069 Monkey and Banana
    codeforces 2B The least round way
    【机器学习】 通俗说拟合
    python-八皇后问题
    python-核心知识思维导图
    python-@property 属性
  • 原文地址:https://www.cnblogs.com/MrZhaoyx/p/11716470.html
Copyright © 2011-2022 走看看