java 中string定义一个对象
string是类不是基本对象,是不是定义一个string类型的变量可以用stringa=“asdf”;和stringa=newstring(“asdf”);是不是只有st...
string是类不是基本对象,是不是定义一个string类型的变量可以用
string a=“asdf”;和
string a=new string(“asdf”);
是不是只有string才是两种都行的呢? 展开
string a=“asdf”;和
string a=new string(“asdf”);
是不是只有string才是两种都行的呢? 展开
4个回答
展开全部
定义一个string类型的变量有两种方式:
string name= "tom ";
string name =new string( "tom ")
使用第一种方式的时候,就使用了串池,
使用第二中方式的时候,就是一种普通的声明对象的方式
如果你使用了第一种方式,那么当你在声明一个内容也是 "tom "的string时,它将使用串池里原来的那个内存,而不会重新分配内存,也就是说,string saname= "tom ",将会指向同一块内存
另外关于string类型是不可改变的问题:
string类型是不可改变的,也就是说,当你想改变一个string对象的时候,比如name= "madding "
那么虚拟机不会改变原来的对象,而是生成一个新的string对象,然后让name去指向它,如果原来的那个 "tom "没有任何对象去引用它,虚拟机的垃圾回收机制将接收它。
string name= "tom ";
string name =new string( "tom ")
使用第一种方式的时候,就使用了串池,
使用第二中方式的时候,就是一种普通的声明对象的方式
如果你使用了第一种方式,那么当你在声明一个内容也是 "tom "的string时,它将使用串池里原来的那个内存,而不会重新分配内存,也就是说,string saname= "tom ",将会指向同一块内存
另外关于string类型是不可改变的问题:
string类型是不可改变的,也就是说,当你想改变一个string对象的时候,比如name= "madding "
那么虚拟机不会改变原来的对象,而是生成一个新的string对象,然后让name去指向它,如果原来的那个 "tom "没有任何对象去引用它,虚拟机的垃圾回收机制将接收它。
展开全部
String 不是java的基本数据类型,要弄清你的问题,你需要去学习一个叫做字符串池的概念,包括我们会经常遇到什么时候使用equals(),什么时候使用“==”,也是这个知识点,只要你搞懂了这个,这些问题都迎刃而解了,有什么问题你可以追问我,没问题,麻烦采纳一下答案,谢谢,希望可以帮助到你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按我理解,
“asdf”是字符串常量,是一个对象常量,赋值给 a没问题。
另外,String a = new String("asdf")也是常规的调用构造函数的方法。
ps:String 是大写
“asdf”是字符串常量,是一个对象常量,赋值给 a没问题。
另外,String a = new String("asdf")也是常规的调用构造函数的方法。
ps:String 是大写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询