java 中string定义一个对象

string是类不是基本对象,是不是定义一个string类型的变量可以用stringa=“asdf”;和stringa=newstring(“asdf”);是不是只有st... string是类不是基本对象,是不是定义一个string类型的变量可以用
string a=“asdf”;和
string a=new string(“asdf”);
是不是只有string才是两种都行的呢?
展开
 我来答
wuhen_zhang
推荐于2018-02-24 · TA获得超过736个赞
知道小有建树答主
回答量:253
采纳率:0%
帮助的人:47万
展开全部
定义一个string类型的变量有两种方式:
string name= "tom ";
string name =new string( "tom ")
使用第一种方式的时候,就使用了串池,
使用第二中方式的时候,就是一种普通的声明对象的方式
如果你使用了第一种方式,那么当你在声明一个内容也是 "tom "的string时,它将使用串池里原来的那个内存,而不会重新分配内存,也就是说,string saname= "tom ",将会指向同一块内存

另外关于string类型是不可改变的问题:
string类型是不可改变的,也就是说,当你想改变一个string对象的时候,比如name= "madding "
那么虚拟机不会改变原来的对象,而是生成一个新的string对象,然后让name去指向它,如果原来的那个 "tom "没有任何对象去引用它,虚拟机的垃圾回收机制将接收它。
鱼得水号
2014-03-30 · 聚爱水族生活馆,让你的生活如鱼得水
鱼得水号
采纳数:585 获赞数:3014

向TA提问 私信TA
展开全部
String 不是java的基本数据类型,要弄清你的问题,你需要去学习一个叫做字符串池的概念,包括我们会经常遇到什么时候使用equals(),什么时候使用“==”,也是这个知识点,只要你搞懂了这个,这些问题都迎刃而解了,有什么问题你可以追问我,没问题,麻烦采纳一下答案,谢谢,希望可以帮助到你!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
再改名我发火
2014-03-30 · TA获得超过189个赞
知道答主
回答量:128
采纳率:0%
帮助的人:130万
展开全部
按我理解,
“asdf”是字符串常量,是一个对象常量,赋值给 a没问题。
另外,String a = new String("asdf")也是常规的调用构造函数的方法。
ps:String 是大写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
发热头发
2014-03-30
知道答主
回答量:12
采纳率:0%
帮助的人:3.8万
展开全部
包装类都可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式