常用API
1. String
1.1 是什么
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.3 构造方法
1.4 常用方法
// 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.5 注意事项
不要做频繁的字符串拼接操作
2. StringBuffer和StringBuilder
2.1 是什么
2.2 使用
3. System
4. Date
4.1 构造方法
4.2 时间格式化
5. Random
5.1 使用
5.2 练习
6. 包装类
6.1 是什么
6.2 使用
6.3 Integer
6.3.1 基本使用
6.3.2 常用方法
6.3.3 自动装箱和拆箱
6.3.4 深入自动装箱-整型常量池
7. Calendar
8. Math
8.1 使用
// abs 绝对值
System.out.println(Math.abs(-1.5));
// ceil 向上取整
System.out.println(Math.ceil(5.00000001));
// floor 向下取整
System.out.println(Math.floor(5.99999));
// max 取两数最大值
System.out.println(Math.max(5.6, 8.2));
System.out.println(Math.min(5.6, 8.2));
// sqrt 平方根
System.out.println(Math.sqrt(9));
// cbrt 立方根
System.out.println(Math.cbrt(8));
// random 随机数, 随机获取一个 大于等于0 且 小于1 的值
// 本质就是random中的nextDouble
System.out.println(Math.random());
// 中间值 : 10~20
// Math.random()*(最大-最小+1)+最小
System.out.println(Math.floor(Math.random() * (20 - 10 + 1) + 10));
// 四舍五入
System.out.println(Math.round(4.4));
// 负数 .5 不进位
System.out.println(Math.round(-4.5));
// 四舍六入五留双, 大于.5 都入 , 小于.5 都舍, .5 取偶数
System.out.println(Math.rint(10.5));
// 5的3次方
System.out.println(Math.pow(5, 3));
ntln(Math.floor(Math.random() * (20 - 10 + 1) + 10));
// 四舍五入
System.out.println(Math.round(4.4));
// 负数 .5 不进位
System.out.println(Math.round(-4.5));
// 四舍六入五留双, 大于.5 都入 , 小于.5 都舍, .5 取偶数
System.out.println(Math.rint(10.5));
// 5的3次方
System.out.println(Math.pow(5, 3));