EffectiveJava-3
2024-09-01 16:23:51
一、如果其他类型更适合,则尽量避免使用字符串
1. 字符串不适合代替枚举类型
2. 字符串不适合代替聚合类型,例如:
String compoundKey = className+ "#" + i.next;
该实体有多个组件,不适合用一个字符串来表示,易发生混乱,为了访问单独的域,必须解析该字符串,此过程很慢、很繁琐也很容易出错。更好的做法是未这个数据集编写一个类。
3. 字符串也不适合代替能力表,能力即为不可伪造的键。有时某些服务需要客户端提供唯一的字符串键,但是若两个客户端各自决定使用相同的名称,无意间就共享了这个变量,安全性会很差。要解决这个问题,只要用一个不可伪造的键(能力)来代替字符串即可。
二、了解字符串连接的性能
1. 字符串连接不适合用在大规模的场景中。为连接n个字符串而重复地使用字符串连接操作符,需要n的平方级的时间。因为字符串不可变,导致要进行连接,两个字符串的内容都需要拷贝。
2. 若项目数量巨大,为了获得可以接受的性能,请用StringBuilder代替String。
《EffectiveJava》P231~P234
最新文章
- 基于DotNetOpenAuth的OAuth实现示例代码: 获取access token
- AD域登录验证
- PHP 源码学习之线程安全
- Java for LeetCode 236 Lowest Common Ancestor of a Binary Tree
- CentOS安装Erlang
- 慕课网-安卓工程师初养成-2-1 Java中的关键字
- Java设计模式之--代理模式学习
- HW4.36
- Understanding the Android Life Cycle
- Head First设计模式之解释器模式
- Parallel中分区器Partitioner的简单使用
- ucsc 文件格式说明
- Counting Bloom Filter
- CCRenderBuffer初始化中的render state参数
- 【Android 应用开发】Android 开发错误集锦
- hass连接设备
- curl命令行
- ARMV8 Procedure Call Standard
- EasyUI+bootsrtap混合前端框架
- HLJU 1046: 钓鱼(数据增强版) (贪心+优化)