大纲:
一、包装类:
1、概念:
1、针对八种基本数据类型相应的引用类型----包装类
2、有了类的特点,就可以调用类中的方法。
Boolean和Character的父类是Object,
其余的父类是Number。
2、包装类和基本数据类型的相互转换:
1、jdk5以前是使用手动装箱和拆箱方式:
// 装箱:int --> Interger
int n1 = 100;
Integer integer = new Inerger(n1);
Integer interger1 = Inerger.valueOf(n1);
// 拆箱:Integer --> int
int i = integer.intValue();
2、jdk5及以后使用自动装箱和拆箱:
int n2 = 100;
Integer integer2 = n2; // 装箱:底层使用的是Inerger.valueOf(n2)的方法
int n3 = integer2; // 拆箱 底层使用的是intValue()方法
3、包装类和String互相转换:
1、包装类(Integer举例) —> String
Integer i = 100;
// 方法1:
String str1 = i + "";
// 方法2:
String str2 = i.toString();
// 方法3:
String str3 = String.valueOf(i);
2、String —> 包装类:
String str1 = "12345";
// 方法1:
Integer i1 = Integer.parseInt(str1);
// 方法2:
Integer i2 = new Integer(str1);
4、包装类常用方法:
二、String类:
1、创建String对象:
2、String特性:
3、String常用方法:
// 1、equals判断内容是否相等,不忽略大小写
String str1 = "hello";
String str2 = "Hello";
System.out.println(str1.equals(str2)); // false
// 2、equalsIgnoreCase:忽略大小写判断内容是否相等
// 3、length:字符串长度
// 4、indexOf:获取某字符在字符串中第一次出现的索引位置,索引从0开始,找不到返回-1
// 5、lastIndexOf:最后一次出现的索引位置。
// 6、substring:截取指定返回的子串
String str1 = "hello word";
System.out.println(str1.substring(6));
System.out.println(str1(0, 3));
// 7、toUpperCase():转换为大写字母 toLowerCase()小写
// 8、concat:拼接字符串
String str = "hello";
str = str.concat("word").concat("hello");
// 9、replace 替换字符串中的字符
String str2 = "my name is lilei";
str2 = str2.replace("lilei", "jack");
// 10、split:分割字符串,返回一个数组
String str3 = "jack, lilei, john, mary";
String{] split = str3.split(","); // 以逗号分割
// 如果有特殊字符,要加转义符 \
str3 = "E:\\aaa\\bbb";
split = str3.split("\\\\");
// 11、toCharArray:转换为字符数组
String name = "jackchen";
char[] chars = name.toCharArray();
// 12、trim:去除前后空格
// 13、charAt:获取某索引处的字符
String name1 = "jack";
System.out.println(name1.charAt(2));
4、stringBuffer:
4.1、StringBuffer构造器的使用:
4.2、String和StringBuffer的相互转换:
4.3、StringBuffer常用方法:
// 1、增:
StringBuffer str = new StringBuffer("hello");
str.append(','); // hello,
str.append("word"); // hello,word
str.append("I").append("love").append(520); // hello,word,ilove520
// 2、删:
str.delete(10,12); // [10,12)
// 3、改:替换
str.replace(6, 8, "王老五"); // 王老五替换6-8位置的字符
// 4、查:
str.indexOf("word"); // 第一次出现的索引位置,找不到返回-1
// 5、插入:
str.insert(8, "hello"); // 索引为8的位置,插入“hello”
// 6、长度:length()
5、StringBuilder类:
5.1、概念:
1、该类被用作StringBuffer的一个简易替换,用于字符串缓冲区被单线程使用的时候,在单线程中,速度更快。
6、三个String类的比较:
三、Math类:
// 1、random方法:
// 要获取a - b 之间的随机整数公式:
(int)(a + Math.random() * (b - a + 1)
for (int i = 0; i < 100; i++) {
System.out.println((int)(2 + Math.random() * (7 -2 + 1))); // [2,7]随机整数
}
四、Date时间类:
1、Date()类:
Date date1 = new Date();
System.out.println(date1); // 返回当前系统时间,国外格式
Date date2 = new Date(8993289); // 通过指定毫秒数,得到对应时间
System.out.println(date2);
// SimpleDateFormat对象:指定相应的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
String format = sdf.format(d1);
System.out.println(format);
2、Calendar类:
Calendar c = Calendar.getInstance(); // 创建日历类对象
3、LocalDate:获取年月日/LocalTime:获取时分秒/LocalDateTime:都有
因为第一代第二代事件类有一些缺点,因此JDK8之后,加入了第三代Date时间类。
LocalDateTime ldt = LocalDateTime.now(); // 获取当前时间