永发信息网

String test=""; 和 String test=new String("");区别

答案:4  悬赏:60  手机版
解决时间 2021-05-05 00:35

除了存放位置不同外,这两者有什么区别?

String test="aaa";是否等同于String test=new String("aaa");

最佳答案

不一样,第一个只创建了一个对象,第二个创建了两个对象


下面是String构造函数,可以看到,它把"aaaa"复制了一份到自己的缓冲里



public String(String original) {
this.count = original.count;
if (original.value.length > this.count) {
// The array representing the String is bigger than the new
// String itself. Perhaps this constructor is being called
// in order to trim the baggage, so make a copy of the array.
this.value = new char[this.count];
System.arraycopy(original.value, original.offset,
this.value, 0, this.count);
} else {
// The array representing the String is the same
// size as the String, so no point in making a copy.
this.value = original.value;
}
}

全部回答

还是不相信我说的?看看楼上说的。

有区别的 前者只是生成一个对象, 后者生成了两个对象

有区别的

String test="aaa";这个test是一个string类型的值

String test=new String("aaa");这个test 是一个string的对象

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
抛弃自己朋友的人,算什么?
杨梅子怎么吃不上火,杨梅怎么吃才不上火
QQ群中怎样送管理员
胡歌的农历生日是哪一天?
华融昆仑青海资产管理股份有限公司在什么地方
本人比较呆怎么办??
我不爱他,我只把他哥哥一样看待,可他却不肯
天怎么会黑
为什麽我在空间发表的日志,测试,投票都没几
怀孕期间牙齿变黑怎么办?
功夫电影里面那二个瞎子, 说了几句话是什么天
Flash高手请进
现在量产乘用车里面哪款车的排量最大?
什么时候适宜转呼拉圈
国斌宾馆我想知道这个在什么地方
推荐资讯
QQ宝宝系统自动续费怎么取消??
夏威夷什么气候
QQ号被盗了,密报问题不知道,怎么办?申诉有
使什么手机杀毒软件最好
电影票预售是什么意思,在淘宝上买手机,那个
电信的校园翼机通好吗
地下城。魔道武器问题
cf,有没有窗口
谁给我个好的网络代理。
狂战怎样转职
华瑶社区居民委员会怎么去啊,有知道地址的么
gprs套餐一个月完了后是自动续费的吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?