#1.Date类
1.date类的使用
创建一个date类对象:Date date=new Date();
format
这边的date还不是我们想要的格式,因此我要进行转换
首先创建SimpleDateFormat(DateFormat的子类)对象:SimpleDateFormat sdf=new SimpleDateFormat (“yyyy年MM月dd日 HH时mm分ss秒”);这边的字符串参数是我们想要的日期格式。
sdf对象调用format方法格式化,将date时间作为参数传递到方法中,并且用一个字符串接收:String d=sdf.format(date);
其中***parse***方法是将已经格式化的日期还原成格式化之前的日期。
代码如下:
SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd HH-mm-ss");
//用SimpleDateFormat对象调用DateFormat的format方法
String d=sdf.format(date);
System.out.println(d);//2020-12-16 00-01-17
Date parse = sdf.parse(d);
System.out.println(parse);//Wed Dec 16 00:01:17 GMT+08:00 2020
#2.Calendar 日历类
Calendar类是一个抽象类,里边提供了很多操作日历字段的方法,因此日历类是无法直接创建对象使用,Calendar中有一个静态方法getInstance(),该方法返回了Calendar类的子类对象。
Calendar类中常用的成员方法有:
public int get(int field):返回给定日历字段的值。
public void set(int field,int value):将给定的日历字段设置为给定值
public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量
下面是对成员方法的参数的解释:
int field:日历类的字段,可以使用Calendar类的静态成员变量获取
public static final int YEAR; 年
public static final int MONTH;月
public static final int DATE; 月中的某一天
public static final int DAY_OF_MONTH;月中的某一天
public static final int HOUR;时
public static final int MINUTE;分
public static final int SECOND;秒
get()方法的案例代码:
//使用getIntance方法获取Calendar子类对象
//c是Calendar子类的对象
Calendar c=Calendar.getInstance();
//通过子类对象访问Calendar类的静态变量YEAR
//再把访问YEAR的值赋值给i
int i = c.get(Calendar.YEAR);
System.out.println(i);//2020
int i1 = c.get(Calendar.MONTH)+1;//西方月份0-11
System.out.println(i1);// 12
//这个月的第几天:DAY_OF_MONTH
int i2 = c.get(Calendar.DAY_OF_MONTH);
System.out.println(i2);//16
set()方法的案例代码
//使用getInstance方法获取Calendar子类对象
Calendar c=Calendar.getInstance();
//设置年为9999年
c.set(Calendar.YEAR,9999);
//同时设置年月日,使用set的重载方法
int i = c.get(Calendar.YEAR);
System.out.println(i);//9999
add()方法案例代码
//使用getInstance方法获取Calendar子类对象
Calendar c = Calendar.getInstance();//当前是2020年
//把年增加2年
c.add(Calendar.YEAR,2);
int i = c.get(Calendar.YEAR);
System.out.println(i);//2022
当然日历类也有获取当前日期的方法:通过Calendar子类对象调用getTime()方法就能返回一个date日期
代码如下:
Calendar c = Calendar.getInstance();
//将日历格式转换为日期格式
Date time = c.getTime();
System.out.println(time);//Wed Dec 16 00:46:11 GMT+08:00 2020
//SimpleDateFormat是DateFormat的子类
//创建一个SimpleDateFormat对象,通过构造方法传递需要的格式
SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd");
//用SimpleDateFormat对象调用DateFormat的format方法
String d = sdf.format(time);
System.out.println(d);//2020-12-16
#System类
currentTimeMillis()方法:返回以毫秒为单位的当前时间(自1970年1月1日00:00:00 GTM以来的毫秒数)
代码:
long s = System.currentTimeMillis();
System.out.println(s);//1608051691306
for (int i = 0; i < 9999; i++) {
System.out.println(i);
}
long e = System.currentTimeMillis();
System.out.println(e);//1608051691357
System.out.println("for循环用时"+(e-s)+"毫秒");//for循环用时51毫秒
其中s为循环开始时间,e为循环结束时间
Arraycopy()方法:由方法名可知,这是复制数组的一个方法
public static void arraycopy (Object src,int srcPos,Object dest,int destPos,int length)
src-源数组 srcPos-源数组中的起始索引 dest-目标数组 destPos-目标数组中的起始位置 length-要赋值的数组数量
代码:
//定义源数组
int []src={1,2,3,4,5};
//定义目标数组
int []dest={6,7,8,9};
System.out.println("复制前"+ Arrays.toString(dest));//复制前[6, 7, 8, 9]
// 使用System类中的arraycopy把源数组的前3个元素复制到目标数组的前3个位置
System.arraycopy(src,0,dest,0,3);
System.out.println(Arrays.toString(dest));//[1, 2, 3, 9]
由于数组的长度不可变性,复制过去的值将直接覆盖原来的数组值。
#StringBuilder类 字符串缓冲区
StringBuilder bu1=new StringBuilder();空构造方法将构造一个不带任何字符的字符串生成器,容量为16
StringBuilder bu2=new StringBuilder(“abc”);带参数的构造方法将构造一个字符串生成器,并初始化为指定的字符串内容
append()方法
此方法为添加字符串的方法
代码:
//创建一个StringBuilder对象,并赋值
StringBuilder bu3=new StringBuilder("abc");
//使用append方法添加字符串
bu3.append("123");
System.out.println("bu3:"+bu3);//bu3:abc123
String字符串是常量,他们的值在创建之后不能改变
StringBuilder是字符串缓冲区(看成一个长度可以变化的字符串,底层是一个数组),可以提高字符串的操作效率。在内存中始终是一个长度为16数组,如果字符串超出了StringBuilder的容量,会自动扩容
String和StringBuilder相互转换的代码:
//String-->StringBuilder
String str="hello";
System.out.println("str:"+str);//str:hello
StringBuilder bu1=new StringBuilder(str);
//往StringBuilder添加数据
bu1.append("world");
System.out.println("bu1:"+bu1);//bu1:helloworld
//StringBuilder-->String
String s = bu1.toString();
System.out.println(s);//helloworld
今天先写到这里,一点多了已经,外加今天感冒了加鼻炎老难受了,还是先结束休息吧,明天继续更… 2020.12.16
今天继续昨天的复习…2020.12.17
##Integer类,自动装箱与自动拆箱
自动装箱:直接把int类型的整数赋值包装类:Integer in=1;相当于Integer in =newInteger(1);
自动拆箱:iu是包装类,无法直接参与运算,可以自动转换为基本数据类型,再进行计算