java中String类

String str=”ABCD”
String str2=new String(“ABCD”)
常量池;用于缓存
此两种创建方法 第一种方法存在于方法区运行常量池中 第二种存在于堆中 然后第二种去调用第一种的引用
第一中声明 最多创建一种 最少不创建(如果常量池中存在ABCD则不创建,否则则创建)
第二种 最多创建2个String对象 最少创建一个(new关键字肯定会再堆中创建,如果常量池 存在 则直接引用,如果不存在 则先创建 再引用)
String 对象比较
1.单独使用“”创建的字符串都是直接量 编译时期就已经1确定储存到常量池中
2.使用new创建的对象会储存到堆中 运行时期才会创建
3.使用只包含直接量的字符串连接符如“aa”+”bb”创建的也是直接量 编译时期就已经确定储存到常量池中
4.使用变量 连接的 如 “aa”+str(或者调用方法) 这种是运行时期菜创建的 不存在编译优化操作
String 的常用方法
1.创建和转换的相关方法
char [] ch={‘a’,’b’,’c’,’d’};
String str1=new String(ch);//char数组与String的相互转化
str1.toCharArray();
//byte与String 的相互转化
“ABCD”.getBytes();
new String(Byte);
//获取字符串相关的信息
str1.length();//获取长度
str1.charAt(2);//获取 指定位置的字符 char
str1.indexOf(cd);//判断子字符串第一次出现的位置
str1.lastIndexOf(str);//判断子字符串最后一次出现的位置
String str2=new String(“ABCD”);
str1.equals(str2);//比较内容
str1.equalsIgnoreCase(str2);//忽略大小写的比较
str1.contentEquals(str2);//与equals相同
str1.toLowerCase()//转化成小写
str1.split(“;”) 按照;来分割
str1.starwith(“Helle”) 以什么开头的字符
str1.substring(int x) 返回该索引之后的字符串
判断字符串是否为空
return (str1!=null&&!”“.equals(str1.trim()))判断str是否为空
StringBuffer StringBuilder的问题

经过测试String连接字符串的耗时长 运行效率低
Stringbuffer 次之,stringBuild 最高
Stringbuffer  stringbuild 功能和方法都相同
buffer使用同步安全了 而build没有

猜你喜欢

转载自blog.csdn.net/everythingxhd_/article/details/80237614
今日推荐