String str="abc"和String str=new String("abc")有区别吗

2024-11-20 21:20:18
推荐回答(2个)
回答(1):

有,第一个在字符串常量区中定义了一个区域,简单的说创建了一个对象,一个引用

第二个在字符常量区里定义了一个区域,在堆里创建了一个区域,在栈里创建了一个引用

简单的举例 如果用 ‘==’ 来将这两个对象做比较,得到的结果是false

当然,equal比较忽略引用,只比较内容,会得到true

回答(2):

有 前者生成一个对象,后者生成 两个对象