Java常用类2
Java常用类2
String相关的类
String,StringBuilder,StringBuffer三者的异同
-
String:不可变的字符序列
-
StringBuffer:可变的字符序列(线程安全,效率低)
-
StringBuilder:可变的字符序列(jdk5.0新增,线程不安全,效率高)
都是用底层char[]存储
StringBuffer s1 = new StringBuffer("abc");//可变
s1.setCharAt(0,'m');
System.out.println(s1);//mbc
StringBuffer s2= new StringBuffer(30);//添加数字来确定要多少个元素(减少扩容)
System.out.println(s2.length());//0
扩容问题:默认情况是扩容2倍+2(16*2+2),同时将原数组中的元素复制到新数组
StringBuffer常用方法
StringBuffer s1 = new StringBuffer("abc");
//添加
s1.append(1);
s1.append("a");
System.out.println(s1);
//删除
s1.delete(2,4);//左闭右开
System.out.println(s1);
//替换
s1.replace(2,4,",hello");//左闭右开
System.out.println(s1);
//插入
s1.insert(2,false);
System.out.println(s1);
//逆转
s1.reverse();
System.out.println(s1);
三者转换
- String-->StringBuffer,StringBuilder:调用StringBuffer,StringBuilder构造器
- StringBuffer,StringBuilder-->String:调用String构造的toString器/StringBuffer,StringBuilder
System类中获取时间截取(jdk8之前日期和时间的api测试)
java.lang.System类
public static void test1(){
//当前时间与1970年1月1日的的时间差(毫秒)
long time = System.currentTimeMillis();
System.out.println(time);//称为时间戳
}
输出一个唯一的当前数
Java.util.Date类(对应数据库中日期类型的变量)
两个构造器:
>构造器1:当前时间
>构造器2:指定时间
两个方法:
>toString():显示当前年,月,日,时,分,秒
>getTime():显示当前对象与1970年1月1日的的时间差(毫秒)
/**
* 构造器1:当前时间
*/
Date date1 = new Date();
System.out.println(date1.toString());//出年,月,日,时,分,秒
System.out.println(date1.getTime());//毫秒数
/**
* 构造器2:指定时间
*/
Date date2 = new Date(985559805311L);//指定时间和当前是相差的毫秒数
System.out.println(date2);
如何将Java.util.Date对象转化成java.sql.System对象
//情况一
Date date3 = new java.util.Date();
Date date4 = (java.sql.Date)date3;
//情况二
Date date5 = new Date();
java.sql.Date date6 = new java.sql.Date((date5.getTime()));
java.text.SimpleDateFormat类
SimpleDateFormat对日期Date类的格式化和解析
-
格式化:日期——>字符串:对象.format(时间)
-
解析:字符串——>日期:对象.parse(时间)
-
SimpleDateFormat的实例化
//实例化(默认)
SimpleDateFormat sdf= new SimpleDateFormat();
/* 格式化*/
Date date = new Date();
System.out.println(date);
String format = sdf.format(date);
System.out.println(format);//字符串
/* 解析(符合格式)*/
String str01 = "22-2-15 下午4:07";
Date parse = sdf.parse(str01);
System.out.println(parse);
System.out.println("=========================");
/*======================================================================*/
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy.MMMM.dd hh:mm.ss");
String format1 = sdf1.format(date); // 年 月 日 时 分 秒
System.out.println(format1);
Date parse1 = sdf1.parse("2022.二月.15 04:31.22");
System.out.println(parse1);
java.util.Calendar类
- Calendar的实例化
- 使用Calendar。getInstance()方法
- 调用子类GregorianCalender的构造器
//使用方法
Calendar instance = Calendar.getInstance(); //当前时间
//常用方法
/*get()*/ 得到天数
int day = instance.get(Calendar.DAY_OF_MONTH);
System.out.println(day);//今天是这个月的第几天
System.out.println(instance.get(Calendar.DAY_OF_YEAR));//今年的第几天
System.out.println("=========================");
/*set()*/ 换天数
instance.set(Calendar.DAY_OF_MONTH,22);//instance已经改了
day = instance.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
System.out.println("=========================");
/*add()*/ 加天数(负数就是减天数)
instance.add(Calendar.DAY_OF_MONTH,3);
day = instance.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
instance.add(Calendar.DAY_OF_MONTH,-6);
day = instance.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
System.out.println("=========================");
//转换
/*getTime()*/ 日历类——>Date
Date time = instance.getTime();
System.out.println(time);
System.out.println("=========================");
/*setTime()*/ Date——>日历类
Date date = new Date();
instance.setTime(date);
System.out.println(instance.get(Calendar.DAY_OF_MONTH));
注:月份:一月是0,十二月是11
星期:周日是1,周六是7