String知识点
字符串
特点
字符串不可改变,创建后不能更改
虽然String的值不可变,但是它们可以被分享
这里可以风向的原因是如果是String s="ddd"这个“ddd”是放在字符串常量池里面的,如果下面有跟它一样的创造方式那么,“ddd”的地址会直接给下面的那个
字符串效果上相当于字符数组(char[]),但是底层是原理是字节数组(byte[])
这个就是new String(byte[]{'97'})这里打印出来是'a'
这个还是有点不太理解
构造方法
new String()
String(char[])
String(byte[])
直接赋值
String对象的特点
每次new都会申请一个内存空间,虽然内存相同但是地址不同。
如果是直接赋值的,那么就在在字符串常量池中生成。后续如果有相同内容的那么就把地址分享给它,不需要申请新的空间了!
字符串的比较
equals是内容的比较
==是地址比较
对于基本数据类型是数值比较
StringBuilder
意义
对于字符串的拼接操作,每次拼接都会构建一个新的String对象,既耗时间,又浪费内存。这时StringBuilder就能稍微解决问题
概述
是个字符串容器,内容是可变的。
构造方法
new StringBuilder()
new StringBuilder(String str)
特殊方法
添加数据
反转字符串
支持链式编程
与String的相互转换
Sb->S
Sb.toString
S->Sb
String a=new Sb(s)