Java的字符串操作
一、比较
语言 | 操作 | 形式 | 机制 | 线程安全性 |
---|---|---|---|---|
c/c++ | char* | 字符指针 | 通过手动修改指针指向的内存空间修改字符串 | 未知 |
c/c++ | String | 容器类 | 内部使用char数组存储字符,但内存管理,分配和null终止都由字符串类本身来处理 | 并发的读操作是线程安全的 |
Java | String | 1. String a = “a”,是以字面常量的形式储存在常量池中 2. new String(“a”) 创建的以对象的形式存放在堆中 |
对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象 | 安全 |
Java | StringBuilder | 对象 | 所有操作都在原有的对象上进行 | 不安全 |
Java | StringBuffer | 对象 | 所有操作都在原有的对象上进行 | 安全 |