String类学习笔记
API: 应用程序编程接口
Java中的API就是指的Java本身为我们提供的具有各种功能的Java类,这些类将底层的实现封装了起来,
我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用
String构造方法:
通过构造方法创建 :
直接赋值的方式:String 对象 =" ";字符方式;public char[] ch =new char();
通过new创建的字符串对象,每一次new的时候都会申请一个内存空间,虽然内容相同,但是在堆内存中的地址值是不同的.
直接赋值方式创建 :
以String 标识符 = ""方式给出的字符串,只要字符序列相同(顺序和大小写),无论在代码中出现几 次,Jvm虚拟机只会简历一个String对象,并在字符串池中维护.
String对象的特点:可以这样理解:
在Java中有一个字符串池,所有通过String创建的字符串常量,如String str=“abc”,String str1=“cba”,都是放在这个字符串池中的,当你又一次创建String str2="abc"时,其实Java并不会重新创建一个abc,而是会在字符串池中寻找,是否存在字符串常量abc,如果找到,则把这个字符串abc的引用复制给str2,如果没有,则会创建一个,每次new出来的String其地址值不同
length(); equals();equals方法用来比较两个字符串内容是否相同(严格区分大小写),与地址值无关,只是比较内容charAt();转大写:toUpperCase()转小写toLowerCase();不区分大小写:CompareNoCase()换字符:replace()
字符串拼接:
字符拼接concat()@NotNull
charAt();返回字符内容
比较字符内容:compareTo 如果元素一致比大小,如果大小一直比较ascii值
substring() 截取字符串
StringBuilder:是一个可变的字符串类,我们可以把它看成是一个容器
字符串是可变的并不创建新的字符
StringBuffer:同StringBuilder
区别:StringBuffer是线程同步安全的–一般多线程用
StringBuilder是线程不同步的,不安全,jdk5才出–一般单线程用(多线程可以自己加锁)
两个功能一模一样
String和StringBuilder区别:
String的内容不可变,它只能修改String的引用,不可修改数据而StringBuilder类的内容可以改变,可以修改引用地址即数据的修改
String类的内容是不可变的,指的是当String类初始化完之后,我们只可以修改String类的引用来达到更改内容的效果,但是不可以修改原本在堆内存中的数据.
StringBuilder类内容是可变的,指的是我们可以修改StringBuilder的引用地址,也就是堆内存中的数据.
StringBuilder:
在StringBuilder对象后面添加数据并且返回自身.如果不返回自身的话,本身的数 据也是会追加的,返回自身是因为可以通过链式编程的方式进行多次数据的追加.