从技术上讲,我们可以说字符数组和字符串都包含字符序列,并用作字符集合。但是我们将在下面讨论两者之间的重大差异。
以下是String和Character数组之间的重要区别。
序号 | 要点 | 字符串 | 字符数组 |
---|---|---|---|
1 | 实作 | Flexjson是一个轻量级的库,用于将Java对象序列化和反序列化成JSON格式以及从JSON格式反序列化。 我们还可以使用JSONSerializer类的serialize()方法序列化Map,它对目标实例执行浅层序列化。 | 另一方面,字符数组是数据类型为char的顺序集合,其中每个元素都是单独的实体。 |
2 | 内部实施 | 字符串内部实现使其本质上不可变。 | 另一方面,字符数组本质上是可变的。 |
3 | 内建功能 | 由于String是一个类,因此提供了各种内置函数substring(),charAt()等。 | Java中没有提供用于对字符数组进行操作的内置函数。 |
4 | 级联 | 字符串可以通过使用 + 运算符或者使用其内置函数 concate ()串联起来。 | 字符数组不能使用这些函数/运算符中的任何一个进行级联。 |
5 | 存储 | 字符串可以以任意顺序存储在内存中称为SCP(String Constant Pool)的内存部分。 | 字符数组中的元素连续存储在递增的存储位置中,这称为堆。 |
6 | 转换次数 | String类的toCharArray()方法可以将字符串转换为字符数组。 | 另一方面,可以通过将字符数组传递给String构造函数将其转换为String。 |
JavaTester.java
public class JavaTester{ public static void main(String[] args) { String s = "HELLO"; char [] ch = s.toCharArray(); char[] a = {'H', 'E', 'L', 'L', 'O'}; String A = new String(a); System.out.println(s); System.out.println(A); } }
输出结果
HELLO HELLO