这些声明有什么不同?
String s="MY PROFESSION";
char c[]="MY PROFESSION";
每种情况下的内存分配情况如何?
如果你看到文件,
String str = "abc";
is equivalent to:
char data[] = {'a', 'b', 'c'}; // not 'abc'
String str = new String(data);
字符串文字在java中非常特殊
字符串在内部由字符数组支持。
匿名用户
第一个编译。第二个没有。
char[]就是:char类型的原始数数组。它只提供了一个长度属性,以及在给定索引处获取和设置字符的方法。
String是一个对象,类型java.lang.String,它有很多有用的方法来操作String。在内部,它使用一个char数组。
字符串的另一个重要特性是它是不可变的。您可以将字符串传递给任何方法,并确保此方法不会更改字符串的内容。char数组的情况并非如此。
关于内存,字符串会消耗更多的字节,但这通常不是指导您的设计决策的内容:通常,使用char数组不是您应该做的。
要更正编译错误,请替换为以下语句之一
String s = "MY PROFESSION";
char c1[] = "MY PROFESSION".toCharArray();
char c2[] = { 'M', 'Y', ' ', 'P', 'R', 'O', 'F', 'E', 'S', 'S', 'I', 'O', 'N' };
StringBuilder sb = new StringBuilder("MY PROFESSION");
StringBuffer sbu = new StringBuffer("MY PROFESSION");
下一节将对上述陈述进行比较
String s="MY PROFESSION";
char c1[]="MY PROFESSION".toCharArray();
char c2[]={'M', 'Y', ' ', 'P', 'R', 'O', 'F', 'E', 'S', 'S', 'I', 'O', 'N'};
c1(通过System.arraycopy)保存字符串底层数组的副本,并存储在堆空间中
c2通过加载单个字符常量在堆栈帧中动态构建
c1
StringBuilder sb = new StringBuilder("MY PROFESSION");
StringBuffer sbu = new StringBuffer("MY PROFESSION");
sb和sbu都是可变的<代码>某人。替换(0,1,'B')
<李>
sb和sbu都存储在堆中
尺寸/长度可以修改<代码>某人。追加(“!”)
<李>
StringBuffer的方法是同步的,而StringBuilder的方法是不同步的
问题内容: 这些声明之间有何不同? 每种情况下的内存分配如何? 问题答案: 要更正编译错误,请使用以下语句之一替换 下一节将以上陈述相互比较 字符串常量 “ MY PROFESSION”是一个常量,并存储在String池中 是不可变的,即完整的内容无法修改。 字符串的大小/长度是固定的(无法附加) 字符数组 保存String的基础数组的副本(通过)并存储在堆空间中 通过加载单个字符常量在堆栈框架中
本文向大家介绍字符数组和字符串之间的区别,包括了字符数组和字符串之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解字符数组和字符串之间的区别。 字符串 他们是不可变的。 一旦它们被定义,就不能被更改。 它指的是一个字符序列,表示为单个数据类型。 它包含了substring()、charAt()等内置函数。 可以使用' + '操作符将字符串追加到一起,从而形成一个新的字符串。
除了后面使用正则表达式之外,java.lang.String的和方法有什么区别?对于简单的替换,如将替换为,有什么区别吗?
我错过了什么?
问题内容: 我现在很无聊,正在做一些Java实践测试,因为我已经用Java编程了一段时间了。经过一个问题,我现在想知道以下两者之间的区别: 在Java IDE中键入此命令时,没有出现任何错误。我还没有尝试编译它们中的任何一个(尽管我过去主要使用自己,所以我知道其中一个可以奏效)。 那么,它们每个都可以编译吗? 如果是的话,有什么区别(如果有)? (对于性能而言,比不进行新的实例化还是要在幕后完成此
问题内容: 空字符串()和空字符串()有什么区别? 这就是我所拥有的: 这是什么意思? 问题答案: 表示将空值分配给。在这种情况下,与相同,将按预期产生。 表示将()或“完全没有值”分配给。因此,这与相同,它将产生一个,因为您无法在Java中对变量(指针或类似物)调用方法。 还有一点,声明 实际上具有与以下功能相同的效果: 鉴于 如前所述,是另一回事。