publicDate(); 创建一个Date对象,代表当前的系统时间
publicDate(long millis); 创建一个Date对象,代表距离国际基准时间millis毫秒后的那个时间
国际基准时间:(英国):1970.01.0100:00:00(中国):1970.01.0108:00:00publicclassTestDateDemo{publicstaticvoidmain(String[] args){//1.创建一个Date对象
Date d =newDate();//Fri Mar 06 10:39:24 CST 2020
System.out.println(d);//2创建一个Date对象
Date dd =newDate(0L);//Thu Jan 01 08:00:00 CST 1970
System.out.println(dd);//标准时间}}
2.3 Date类的常用方法
publiclonggetTime(); 获取当前Date对象距离基准时间的毫秒值
publicvoidsetTime(long time); 修改当前Date对象距离标准时间的毫秒值
publicclassTestDateDemo{publicstaticvoidmain(String[] args){//3.常用成员方法
Date now =newDate();//当前的系统时间long time = now.getTime();
System.out.println(time);//1583462903946
now.setTime(1000L);
System.out.println(now);}}
我们不是DateFormat(抽象类),使用的其子类(SimpleDateFormat)publicSimpleDateFormat(String pattern);以指定的格式/模式创建SimpleDateFormat对象
这里的参数pattern表示我们想要的时间字符串的格式/模式
想要这种格式:"xxxx年xx月xx日 xx:xx:xx"
对应的pattern这么写呢?"yyyy年MM月dd日 HH:mm:ss"
我们只需要记住:
y -- 年
M -- 月
d -- 日
H -- 时
m -- 分
s -- 秒
3.3 DateFormat类的成员方法
public String format(Date date); 格式化方法
public Date parse(String time); 解析方法
publicclassTestDemo{publicstaticvoidmain(String[] args)throws ParseException {//1.创建一个SimpleDateFormat对象
SimpleDateFormat sdf =newSimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//2.格式化 format
Date now =newDate();
String nowStr = sdf.format(now);
System.out.println(nowStr);//3.解析 parse
System.out.println("============");
Date date = sdf.parse("2030年04月07日 12:26:20");//异常,使用快捷键 alt+回车,再回车
System.out.println(date);}}
publicdoubleabs(double d);//求绝对值,如果是正数,那么不变,如果负数那么把负号去掉publicdoubleceil(double d);//向上取整 publicdoublefloor(double d);//向下取整publiclonground(double d);// 四舍五入到整数publicdoublepow(double d1,double d2);//求次幂(次方)publicclassTestMath{publicstaticvoidmain(String[] args){// public double abs(double d); //求绝对值,如果是正数,那么不变,如果负数那么把负号去掉double abs = Math.abs(-3.14);
System.out.println(abs);// public double ceil(double d);//向上取整double ceil = Math.ceil(3.1);
System.out.println(ceil);// public double floor(double d);//向下取整double floor = Math.floor(3.9);
System.out.println(floor);// public long round(double d);// 四舍五入到整数long round = Math.round(3.501);
System.out.println(round);// public double pow(double d1,double d2);//求次幂(次方)//3*3*3*3double pow = Math.pow(3,4);
System.out.println(pow);}}
注意:
ceil只要有小数部分不是0,那么就向整数为进1
floor无论如何,小数部分不要,只要整数部分
Math.ceil(3.0);===>3.0
Math.floor(3.0);===>3.0
关于负数的ceil和floor
第六章 System
6.1 System类的介绍
System类中包含几个静态的变量和静态的方法,并且该类是不能创建对象的
经过我们对System类源码的研究,发现System类的构造被私有化了
publicfinalclassSystem{/** Don't let anyone instantiate this class */privateSystem(){}}
6.2 System类的常见方法
publicstaticvoidexit(int status); 退出JVM虚拟机,按照惯例,参数写0即可!!publicclassTestSystem{publicstaticvoidmain(String[] args){//1.试图创建一个System对象// System s = new System(); //报错! 因为System的构造私有化了//2.exitfor(int i =0; i <10; i++){
System.out.println("我爱Java"+i);//退出JVM,整个Java程序都会结束
System.exit(0);// break; //结束当前的循环,如果循环后面还有代码可以继续执行}
System.out.println(".....");}}publicstaticlongcurrentTimeMillis(); 获取当前系统之间的毫秒值(距离基准时间的毫秒值)publicclassTestSystem02{publicstaticvoidmain(String[] args){//1.获取当前系统时间的毫秒值//long millis = System.currentTimeMillis();//System.out.println(millis);//2. String StringBuilder 用于字符串拼接的性能测试long start = System.currentTimeMillis();//5万次的String拼接 耗时8085毫秒 8秒多// String s = "";// for (int i = 0; i < 50000; i++) {// s += i;// }//5万次的StringBuilder拼接 耗时27毫秒 0.027秒
StringBuilder sb =newStringBuilder();for(int i =0; i <50000; i++){
sb.append(i);}long end = System.currentTimeMillis();
System.out.println("耗时"+(end-start)+"毫秒");//算法: 空间复杂度(占用的内存) 时间复杂度(运行花费的时间)}}