Java字符串

Java字符串 一.API应用程序接口,简单来说API就是别人已经写好的东西,我们不用自己再写一遍,直接使用即可Java API:指JDK中提供的各种功能的java类,这些类将底层的实现封装起来,不用考虑这些类是怎么实现的,直接学习这些类的使用即可二.String概述:java.lang.String类代表字符串,Java程序中的所有字符串文字都为此类的对象注意:字符串的内容不会发生改变,它的对象在创建后不能被更改String对象的创建:1.直接赋值String name ;2.new方法创建构造方法说明public String()创建空白字符串,不含任何内容public String(String original)根据传入的字符串,创建字符串对象public String(char[] chs)根据字符数组,创建字符串对象public String(byte[] chs)根据字节数组,创建字符串对象字符数组的使用场景:需要修改字符串内容字节数组的使用场景:以后在网络中传输的数据都是字节信息,一般要把字节信息进行转换,转换成字符串,此时用到此构造Java的常用方法(比较):号比较的到底是什么:基本数据类型比较数据值;引用数据类型比较地址值字符串的比较方法:构造方法说明boolean equals(要比较的字符串)完全一样的结果才是true,否则为falseboolean equalsIgnoreCase(要比较的字符串)忽略大小写的比较字符串的遍历:构造方法说明public char charAt(int index)根据索引返回字符public int length()返回此字符串的长度字符串的截取:构造方法说明String substring(int beginIndex,int endIndex)包头不包尾,包左不包右;只有返回值才是截取的小串String substring(int beginIndex)截取到末尾字符串的替换:构造方法说明String replace(旧值,新值)只有返回值才是替换后的结果三.StringBuilder概述:StringBuilder可以看作是一个容器,创建后里面的内容是可变的作用:提高字符串的操作效率StringBuilder的构造方法:方法名说明public StringBuilder()创建一个空白可变字符串对象,不含有任何内容public StringBuilder(String str)根据字符串的内容,创建可变字符串对象StringBuilder的常用方法:方法名说明public StringBuilder append(任意类型)添加数据并返回对象本身public StringBuilder reverse()反转容器中的内容public int length()返回长度(字符出现的个数)public String toString()通过toString()可以实现吧StringBuilder转换为String链式编程:在调用一个方法时,不需要用变量接收结果,可以继续调用其他的方法四.StringJoiner概述:StringJoiner和StringBuilder一样,也可以看作是一个容器,创建后里面的内容是可变的作用:提高字符串的操作效率,而且代码的编写十分简洁JDK8之后出现StringJoiner的构造方法:方法名说明public StringJoiner(间隔符号)创建一个StringJoiner对象,指定拼接时的间隔符号public StringJoiner(间隔符号,开始符号,结束符号)创建一个StringJoiner对象,指定拼接时的间隔符号、开始符号、结束符号StringJoiner的成员方法:方法名说明public StringJoiner add(添加的内容)添加数据,并返回对象本身public int length()返回长度(字符出现的个数)public String toString()返回一个字符串(该字符串就是拼接后的结果)五.字符串原理1.字符串存储的内存原理:直接赋值会服用字符串常量池中的new出来的不会复用,而是开辟一个新的空间2.号比较的到底是什么:基本数据类型比较数据值引用数据类型比较地址值3.字符串拼接的底层原理:如果没有变量参与,都是字符串直接相加,编译之后就是拼接之后的结果, 会复用串池中的字符串如果有变量参与,会创建新的字符串,浪费内存4.StringBuilder提高效率原理:所有要拼接的内容都会往StringBuilder中放,不会创建很多无用的空间,节约内存5.StringBuilder源码分析:默认创建一个长度为16的字节数组添加的内容长度小于16,直接存储添加的内容大于16会扩容(原来容量*22)如果扩容之后还不够,已实际长度为准