1.System:系统类,主要用于获取系统的属性数据,没有构造方法。
代码展示;
public class SystemTest04 {
public static void main(String[] args) {
Long start = System.currentTimeMillis(); //获取当新系统时间的毫秒值(时间戳),可以用来做性能测试或者配合生成一些不重复的编号
for (int i = 0;i < 100000; i++) {
//测试书写的程序的运行效率
System.out.println(i);
}
Long stop = System.currentTimeMillis(); //获取当前系统时间的毫秒值
System.out.println("十万次性能测试时间为:"+(stop-start)+"毫秒");
}
}
2.StringBuilder:是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是StringBuilder对象中的内容是可变的
代码展示:
public class StringBuilderTest05 {
public static void main(String[] args) {
//如下代码会在内存中出现三个字符串,Hello。World.HelLoworld
// string类在做字符串值变化的时候,非常浪费内存
String s ="Hello";
s +="World";
System.out.println(s);
StringBuilder sb1=new StringBuilder("Hetlo");
sb1.append("World"); //对字符串后面进行追加内容
System.out.println(sb1);
sb1.insert(2,"xyz"); //在字符串指定索引部位插入一个新的字符串
System.out.println(sb1);
StringBuilder sb2=sb1.reverse();//字符串的反转
System.out.println(sb2);
}
}
3.区别:
String类定义出来的字符串具有不变性: 一般不做经常变化字符串的使用,经常需要变化的推荐使用StringBuffer或StringBuilder
StringBuffer 线性安全的可变字符串序列
StringBuilder 是线性不安全的可变字符串序列
4.StringBuilder和String相互转换
// string转换成StringBuilder
String str = "hello";
StringBuilder sb = new StringBuilder(str);
System.out.println(sb); // hello
// StringBuilder转换成String
String s = sb.toString();
System.out.println(s); // hello
5. String类特点:
* 一切都是对象,字符串事物 "" 也是对象
* 类是描述事物,String类,描述字符串对象的类
* 所有的 "" 都是String类的对象
* 字符串是一个常量,一旦创建,不能改变
6.String类构造方法及代码展示
public class StringTest02 {
public static void main(String[] args) {
String s1="abcdefgh";
char c = s1.charAt(2);//获取字符串中指定索引位置的元素
System.out.println(c);
String s2=s1.concat("xyz");//字符串的拼接,把s1字符串拼接上Xyz
System.out.println(s2);
boolean b1 = s1.contains("x");
boolean b2 = s2.contains("x");
System.out.println(b1);
System.out.println(b2);
String s3="JavaTest.txt";
boolean b3=s3.endsWith(".txt");//判断字符串是否以.txt结尾,常常用来判断文件名的后缀
System.out.println(b3);
String s4="abcdefcdxyz";
byte[] bytes1=s4.getBytes();//把字符串按照ASCII码表 解析成 byte数组
char[] chars1=s4.toCharArray();//把字符串 转换成 字符数组
String s5="Bad weather fuck the weather";
String s6=s5.replace("fuck","***");//把字符串中出现的fuck替换为***
System.out.println(s6);
String s7="abcdefg";
String s8 = s7.substring(2,5);
System.out.println(s8);
String s9="app/code/java/day01";
String[] split= s9.split( "/");//接 / 拆分字符串形成字符串数组["app”,"code","java","day01"]
String s10=" 面包 " ;
System.out.println(s10);
String s11=s10.trim();//取出字符串前后的空格
System.out.println(s11.replace("",""));
}
}
public class StringTest01 {
public static void main(String[] args) {
String s1="abc";//引用内存中abc字符串的地址
System.out.println(s1);
String s2=new String();//创建一个空字符串
System.out.println(s2);
byte[] bytes1={97,98,99,100,101,102,103,104};//byte范围是-128 --- 127
String s3=new String(bytes1); //把byte数组中的整数值按照ASCII码表解析成字符串 ---》abcdefgh
System.out.println(s3);
byte[] bytes2={97,98,99,100,101,102,103,104};// 照ASCII码表解析 abcdefgh
String s4=new String (bytes2, 2,3);// 把ute数组中的整数值,从索引2的元素开始截取3个长度,按照ASCII码表解析成字符---) cde
System.out.println(s4);
char[] chars1={'a', 'b', 'c', 'd','e'};
String s5=new String(chars1); //把字符数组转换成字符串---》abcde
System.out.println(s5);
char[] chars2={'a', 'b','c', 'd','e'};
String s6=new String(chars2,2,2);//把字符数组索2的元素开始截取2个长度转换成字符串---》cd
System.out.println(s6);
String s7=new String("abcd");//abcd
System.out.println(s7);
}
}