常用API
1.String
1.1是什么
String字符串,底层是一个字符数组,所以字符串的很多特性就是数组的特性
字符串一旦创建,不能修改
为了提高字符串的访问效率,java提供了一种缓存技术,字符串常量池
如果是用String a=""就不会在堆内存创建对象,而是直接在常量池中进行搜索,如果有就直接使用,没有就创建
如果是用String a=new String(“”)会在堆内存创建字符串对象,并且常量池中如果没有,也会创建
1.2基本使用
String s1 = “ab”;
String s2 = “ab”;
System.out.println(s1 == s2);
// 以上程序只会在常量池中创建一个ab对象,并且s1和s2都指向ab
String s3 = new String(“abc”);
String s4 = new String(“abc”);
System.out.println(s3 == s4);
System.out.println(s3.equals(s4));
// 堆内存两个,常量池一个,s3和s4分别指向不同的堆内存
String s5 = new String(“zxc”);
// intern : 在字符串常量池中查询,是否存在当前字符串,如果不存在就把字符串放进去
s5.intern();
String s6 = “zxc”;
// false , 因为new 存放在堆内存,s6指向的zxc 是常量池
// s5.intern(); 把s5放进常量池的时候,发现已经有了,所以并不会把s5放进去
System.out.println(s5 == s6);
String s7 = new String(“a”) + new String(“a”) ;
// a会被放在常量池中一份,堆内存中也有,但是拼接的aa 会在堆内存存储,但是不会在常量池中
// 因此 s7.intern() 的时候,会把s7放到常量池中一份
s7.intern();
// s8=“aa” 发现常量池中已经有s7了(“aa”) 则 直接指向,不再创建
String s8 = “aa”;
// 因此s7和s8的地址相同
System.out.println(s7 == s8);
System.out.println(s7.equals(s8));
1.1 构造方法
1.2 常用方法
// 1 char charAt(int index) : 获取字符串中指定下标的字符
String s1 = “ashjbdkfq”;
char c1 = s1.charAt(3);
System.out.println(c1);
// 2 boolean endsWith(String suffix) : 判断某个字符串是否已指定字符串结尾
// boolean startsWith(String prefix) : 判断某个字符串是否已指定字符串开头
System.out.println(“asdasd”.endsWith(“sd”));
// 3 boolean equals(Object obj) : 判断是否相等
// boolean equalsIgnoreCase(String str) : 不区分大小写比较是否相等
System.out.println(“ASDDSAasddsa”.equalsIgnoreCase(“asddsaAsdDsa”));
// 4 int indexOf(String str) : 获取指定字符串的起始索引,不存在返回-1(第一次出现的位置)
System.out.println(“ndsajkfnqwga”.indexOf(“aj”));
// 5 int indexOf(String str,int fromIndex) : 获取指定字符串的起始索引,不存在返回-1(从指定位置开始向后找)
System.out.println(“ndsajafnqawga”.indexOf(“a”,5));
// 6 int lastIndexOf(String str) : 获取指定字符串的结束索引,不存在返回-1(最后一次出现的位置)
// 7 int lastIndexOf(String str,int formIndex)
// 8 int length() 字符串长度
System.out.println(“asasdad”.length());
// 9 String replace(String str,String replace) : 替换指定字符,返回新字符串
System.out.println(“aca.vanbgdn.skca”.replace(“.”, “=”));
// replaceAll 替换,支持正则表达式 在正则表达式中 . 代表任意字符
System.out.println(“aca.vanbgdn.skca”.replaceAll(“.”, “=”));
// 10 String[] split(String regex) : 以特定字符分割,得到字符串数组,支持正则表达式
String[] arr = “2024-8-5”.split(“-”);
// 11 String substring(int begin) : 获取指定下标为起始的,子字符串(包含)
System.out.println(“asbjvkabfa”.substring(3));
// String substring(int beginIndex , int endIndex) :获取指定位置起始(包含) 到指定位置结束(不包含)的子字符串
System.out.println(“asbjvkabfa”.substring(3,6));
// 12 char[] toCharArray() : 把字符串转换为char数组
char[] chars = “asdasd”.toCharArray();
// 13 String toUpperCase() 转大写
// String toLowerCase() 转小写
System.out.println(“asdas”.toUpperCase());
// 14 String trim() : 删除两边空格
System.out.println(" asd dsa ".trim());
1.3 注意事项
不要做频繁的字符串拼接操作
2. StringBuffer和StringBuilder
2.1 是什么
2.2 使用
3. System
4. Date
4.1 构造方法
4.2 时间格式化
(img-dr9AbPIn-1722843495252)]
3. System
[外链图片转存中…(img-53lLmaOM-1722843495253)]
4. Date
4.1 构造方法
[外链图片转存中…(img-LVO9lR1v-1722843495253)]