永发信息网

java 建立 建立数组问题

答案:3  悬赏:0  手机版
解决时间 2021-02-03 04:30
  • 提问者网友:像風在裏
  • 2021-02-02 16:40
public class ShuZu
{
public static void main(String args[])
{
String [] ss = new String[3];
ss[1] = "string"; //*******1

StringBuffer [] s = new StringBuffer[3];
s[1] = new StringBuffer("string"); //*******2
}
}

为什么String 可以直接赋值,而StringBuffer 却要 new 呢, 好像是用Date 也要new ?为什么呢?请高手赐教!
最佳答案
  • 五星知识达人网友:一秋
  • 2021-02-02 17:25
String 是特殊类,他不是直接赋值
而是在字符串池中先创建了一个“string”的字符串对象,而把这个字符串对象的地址直接给ss[1]了
就像是
Object a,b;
b=new Object();
a=b;//a并未创建实例,而是直接获取了b的内存地址,与ss[1] = "string"; 用法相同
这种的似地
具体用法可以百度一下 java字符串池 参考参考
String str=new String("string");该表达式是创建了2个String类对象,一个是str,一个是“string”
全部回答
  • 1楼网友:毛毛
  • 2021-02-02 18:20
String 的底层就是 StringBuffer StringBuffer 的底层是数组 java 的八大数据基本类型都有对应的封装类,你要是不好理解就当StringBuffer 是 String 的封装类,但是 这里理解是不正确。。。
  • 2楼网友:渊鱼
  • 2021-02-02 18:15
java怎么会没有链表?arraylist,linkedlist这些不都是吗? 要动态的就用这些就好了,原理也是如果满了就采用特定算法进行扩容以及复制转移
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯