1、可变字符串类:java.lang:StringBulider(jdk1.5开始,属于非线程安全的类,效率高)、StringBuffer(jdk1.0开始,属于线程安全的类,效率低)
(线程:以大家下楼取苹果为例;安全线程:排队装;非安全线程:不排队抢货。)
(1)StringBuilder类构造方法
(2)成员方法
快捷键:回到上一步/下一步:ctrl+alt+方向键(左右)
(3)返回值设计
- 既然StringBuilder类的对象本身可以修改,为什么成员方法还有返回值?——为了连续调用
sb3.reverse().append("1").insert(2,"45").deleteCharAt(9);
- String类型与StringBuilder类型之间转换?——toString、构造方法
String str5 = sb3.toString(); StringBuilder sb6 = new StringBuilder(str5);
- String、String Buffer、String Builder效率依次增高。
二、日期相关类
2、System类:java.lang.System
(1)之前用过的常用方法:System.in、System.out、System.Arrsy.copyOf。。。
(2)System.currentTimeMillis():返回当前时间与1970年1月1日0时0分0秒之间的毫秒为单位的时间差,long。用途:测试某一段代码的执行效率。生成特定的订单号码。等
3、Date类:java.util.Date,用于描述特定的瞬间,年月日时分秒,精确到毫秒。
(1)常用方法
4、SimpleDateFormat类:java.text.SimpleDateFormat,主要用于实现日期和文本之间的转换。
(1)常用方法
5、Calender类:java.util.Calender类,用于描述特定瞬间,取代Date类中过时方法,实现全球化。该类为抽象类,不能new对象,具体子类针对不同国家的日历系统,其中最广泛的是GergorianCalender
Calendar instance = Calendar.getInstance();
instance.set(2000,4-1,8,12,0,0);
Date d2 = instance.getTime();
快捷键:Alt+Enter返回值快速添加
(1)多态使用场合
- 通过方法的参数传递:public static void show(Shape s){s.show()} draw(new Rect(1,2,3,4));
- 用抽象类或接口类的引用指向子类或实现类的对象,在方法体中直接使用多态语法格式:Account acc = new FixedAccount();
- 通过方法返回值类型形成多态:Calender getInstance(){return new GergorianCalender();}
三、Java8以后的日期相关类:java.time/java.time.chrono/java.time.format/java.time.temporal/java.time.zone
Java8之前的日期类面临的问题:年份从1900开始,月份从0开始;格式调整需要从Calender转成Date再进行Format;线程安全问题。
6、LocalDate类:java.time.LocalDate类,用于描述年-月-日格式的日期信息,该类不表示时间和时区信息。
static LocalDate now()
7、LocalTime类:java.time.LocalTime类,用于描述时间信息,可以描述时分秒以及纳秒。
static LocalTime now()
static LocalTime now(ZoneId zone)
8、LocalDateTime类:java.time.LocalDateTime类,用于描述ISO-8601日历系统中没有时区的日期时间。
快捷键:ctrl+F12搜索方法
9、Instant类:java.time.Instant类,主要用于描述瞬间的时间信息。——Date类
10、DateTimeFormatter类:java.time.format.DateTimeFormatter类,用于格式化和解析日期。——SimpleDateFormate类