Java字符型和字符串类型有什么区别吗?
2个回答
2020-05-09
展开全部
操作字符串的类有:String、StringBuffer、StringBuilder。
String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。
StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。
String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。
StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。
展开全部
字符串是引用型变量,而基本数知据类型是数值变量, 引用型变量就像C语言里面的指针存放的是该字符串的地址。计算机存储的数据都有一个编号就是地址。字符串就是存放的地址;
比如有两个数道值型的数据判断是否相等,直接用‘==’就行了,
但是引用变量就不一样了。比如String s1="123";假设这个字符串在计算机的地址内&s1=Oxffa00fff; String s2="123"; 假设这个字符串在计算机的地址是&s2=Oxffa000f0; 如果容你像这样比较 s1==s2 返回的是false;因为你这样比较就是他们地址的比较 Oxffa00fff=Oxffa000f0 ? 明显不等,这时就要调用java中字符串的方法equals(); s1.equals(s2) 返回true
比如有两个数道值型的数据判断是否相等,直接用‘==’就行了,
但是引用变量就不一样了。比如String s1="123";假设这个字符串在计算机的地址内&s1=Oxffa00fff; String s2="123"; 假设这个字符串在计算机的地址是&s2=Oxffa000f0; 如果容你像这样比较 s1==s2 返回的是false;因为你这样比较就是他们地址的比较 Oxffa00fff=Oxffa000f0 ? 明显不等,这时就要调用java中字符串的方法equals(); s1.equals(s2) 返回true
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询