多语言展示
当前在线:176今日阅读:100今日分享:18

java基础要点:[3]字符串

1)indexOf(''):返回字符串中某字符的下标 2)subString(1,3);//取字串 包前不包后 3)trim():去掉字符串前后的空白 4)subString(,uri.index('/',''));截取从哪儿到哪儿中间部分 5)indexof(,,):从A开始包括,截取长度,到哪个字符 6)endWith(“”):以什么为结尾的 7)startWith(''): 8)在java虚拟机中存在一个字符串池,保存着许多String对象,字符串池由String 类维护,可调用initem()访问字符串池,java虚拟机在字符串池中查找是否存在 一个值abc的对象,判断依据是String类equal(Object obj)方法的返回值,如果有 不创建,返回已存在对象的引用; jvm在启动时会分配9个池空间,8种基本类型包装类+字符串常量池 String s1='abc'; 1个入池 String s2='abc'; 0个 池中已有一个 String s3=new String('abc') 创建一个堆区 String s4=new String('abc') 创建一个堆区 String s5='abc'+'d' abcd 1个入池 String s6=s1+'d' 当出现变量时, 单独入池, “d”入池 2个 String str=new String('abc'+'def') 2个 String str=new String(s1+'def') 3个 s1def堆 def 9)静态字符串 在java编译期间,凡是字面量和常量的运算,都会先运算出结果 当字符串池中有String对象时,java会直接用,如果没有才创建 String=char[]+操作(复制创建新对象) StringBuilder=char+对char操作(处理当前数组内容),变长字符序列 StringBuilder内部的char[]数组内容可变,如果长度不够 利用变长算法维护,自动扩容 append():表示追加,但方法反复操作的同一个对象 insert()和delete()表示插入和删除 StringBuffer()线程安全的可变字符序列 String s=s1+s2;相等于 String s=new StringBuilder(s1).apend(s2).toString() StringBuffer()是早期提供的(jdk1.0),速度稍慢,线程安全 StringBuilder()是java5以后提供的(jdk5.0),速度快,非线程安全
推荐信息