主页 > 电脑硬件  > 

DAY04Object、Date类、DateFormat类、Calendar类、Math类、System类

DAY04Object、Date类、DateFormat类、Calendar类、Math类、System类
学习目标 能够说出Object类的特点 是所有类的祖宗类,任意的一个类都直接或者间接的继承了Object类,都可以使用Object类中的方法 Animal extends Object:直接继承 Cat extends Animal:间接继承 能够重写Object类的toString方法 alt+insert,选择toString 能够重写Object类的equals方法 alt+insert,选择equals and hashCode 能够使用日期类输出当前日期 import java.util.Date; Date date = new Date(); sout(date);//Mon Apr 27 15:55:03 CST 2020 能够使用将日期格式化为字符串的方法 //1.创建SimpleDateFormat对象,构造方法中传递指定的模式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); //2.调用SimpleDateFormat对象中的方法format根据构造方法中传递的模式,把日期格式化为符合模式的字符串 Date date = new Date(); System.out.println(date);//Wed Mar 18 11:50:38 CST 2020 String s = sdf.format(date); System.out.println(s);// 2020年03月18日 11时51分32秒 能够使用将字符串转换成日期的方法 //1.创建SimpleDateFormat对象,构造方法中传递指定的模式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //2.调用SimpleDateFormat对象中的方法format根据构造方法中传递的模式,把日期格式化为符合模式的字符串 Date date = sdf.parse("2000-12-12"); System.out.println(date);//Tue Dec 12 00:00:00 CST 2000 能够使用Calendar类的get、set、add方法计算日期 int get(int field) 获取给定日历字段的值。 void set(int field, int value) 将给定的日历字段设置为给定值。 void add(int field, int amount) 把日历字段增加|减少指定的值 能够使用Math类对某个浮点数进行四舍五入取整 static double ceil(double a) 向上取整 static double floor(double a) 向下取整 static long round(double a) 四合五入 long。 能够使用System类获取当前系统毫秒值 static long currentTimeMillis() 返回以毫秒为单位的当前时间。 一.Object类 1.Object类介绍(了解) java.lang.Object 注意:lang包中的类无需导包可以直接使用类 Object 是类层次结构的根类(最顶层的类 祖宗类)。每个类都使用 Object 作为超类。任何一个类都直接或者间接的继承了Object类所有对象(包括数组)都实现这个Object类的方法。任何一个类都可以使用Object类中的方法 2.Object类的toString方法(重点) package com.itheima.demo01toString; import java.util.ArrayList; import java.util.Random; /* Object类中的常用方法: String toString() 返回该对象的字符串表示。 Object类toString方法的底层源码: public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } getClass().getName():使用反射技术获取类的全类名(包名+类名) com.itheima.demo01toString.Person "@" :字符串原样输出,分割的作用 hashCode():Object类中的方法,可以获取对象的哈希值,哈希值是一个系统随机给出的十进制的整数 123123123 Integer.toHexString(hashCode());把十进制的整数转换为十六进制 0-9 a-f 组合在一起: com.itheima.demo01toString.Person@AC123(对象在堆内存中的地址值) */ public class Demo01ToString { public static void main(String[] args) { /* Person类默认继承了Object类,所以可以使用Object类中的toString方法 */ Person p = new Person("迪丽热巴",18); String s = p.toString(); System.out.println(s);//com.itheima.demo01toString.Person@4554617c Person{name = 迪丽热巴 ,age = 18} //直接打印对象的名字,就是调用对象的toString方法 System.out.println(p);//com.itheima.demo01toString.Person@4554617c Person{name = 迪丽热巴 ,age = 18} /* 注意: 以后看一个类是否重写toString方法,打印名看看是否为地址值即可(默认调用toString方法) 是地址值:类没有重写toString方法 不是地址值:类重写了toString方法 */ String str = new String("aaa"); System.out.println(str);//aaa 不是地址值String类重写了toString方法 Random r = new Random(); System.out.println(r);//java.util.Random@74a14482 是地址值,Random类没有重写toString方法 ArrayList<Integer> list = new ArrayList<>(); list.add(1); list.add(2); System.out.println(list);//[1, 2] 不是地址值,ArrayList集合重写toString方法 } } package com.itheima.demo01toString; //ctrl+鼠标左键点击一个类名或者方法名,就可以进入到类|方法中 public class Person extends Object { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } /* Obejct类中的toString方法,默认打印对象的地址值没有意义 需要重写toString方法,打印对象的属性值(成员变量) */ /*@Override public String toString() { return "Person{name = "+name+" ,age = "+age+"}"; }*/ //快捷键:alt+insert==>toString方法 @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 3.Object类中的equals方法(重点) package com.itheima.demo02equals; import java.util.Random; /* Object类中的方法equals: boolean equals(Object obj) 指示其他某个对象是否与此对象“相等”。 Object类中的equals方法的源码: public boolean equals(Object obj) { return (this == obj); } ==:比较运算符 基本数据类型:比较的是值是否相等 10==20 引用数据类型(数组,集合,类Person):比较的是地址值是否相等 @1ac1==@223 */ public class Demo01Equals { public static void main(String[] args) { Student s1 = new Student("詹姆斯",35); Student s2 = new Student("韦德",38); //使用Object类的toString方法,打印对象的地址值 System.out.println(s1.toString());//com.itheima.demo02equals.Student@4554617c System.out.println(s2.toString());//com.itheima.demo02equals.Student@74a14482 //使用Object类的equals方法,比较两个对象的地址值是否相等 boolean b = s1.equals(s2); System.out.println(b);//false s1=s2;//把s2的地址值赋值给s1 System.out.println(s1);//com.itheima.demo02equals.Student@74a14482 System.out.println(s2);//com.itheima.demo02equals.Student@74a14482 boolean b2 = s1.equals(s2); System.out.println(b2);//true Student s3 = new Student("迪丽热巴",18); Student s4 = new Student("迪丽热巴",18); System.out.println(s3);//com.itheima.demo02equals.Student@1540e19d System.out.println(s4);//com.itheima.demo02equals.Student@677327b6 Random r = new Random(); //boolean b3 = s3.equals(s4); //boolean b3 = s3.equals(r); //boolean b3 = s3.equals(null); boolean b3 = s3.equals(s3); System.out.println(b3); } } package com.itheima.demo02equals; public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } /* 比较两个对象的地址值没有意义,所以我们需要重写Object类的equals方法 比较两个对象的属性(name和age) */ @Override public boolean equals(Object obj) { /* 如果obj就是this本身,那么就没有比较在强转进行属性的比较,直接返回true,可以提高效率 */ if(obj == this){ return true; } /* 如果obj的值是null,那么直接返回false,可以提高程序的效率 */ if(obj==null){ return false; } /* ClassCastException: java.util.Random cannot be cast to com.itheima.demo02equals.Student 为了防止类在转换异常,强转之前使用instanceof关键字进行判断 */ if(obj instanceof Student){ /* 问题:多态==>无法使用子类特有的成员==>需要向下转型 Object obj = s2 = new Student("韦德",38); */ Student s = (Student)obj; //比较this(s1)和s(obj=s2)两个对象的属性name和age // 詹姆斯 韦德 35 38 boolean b = this.name.equals(s.name) && this.age == s.age; return b; } //obj不是Student,直接返回false return false; } //重点:快捷键 alt+insert 重写equals方法 /*@Override public boolean equals(Object o) { if (this == o) { return true; } //getClass() != o.getClass() 使用反射技术判断对象的类型 相当于 obj instanceof Student if (o == null || getClass() != o.getClass()) { return false; } Student student = (Student) o; if (this.age != student.age) { return false; } return name != null ? this.name.equals(student.name) : student.name == null; }*/ public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }

4.Object类中的重点

会使用快捷键:alt+insert,给类添加toString和equals方法就可以了

5.native本地方法

native修饰的方法:说明这个方法不是java语言编写的

调用的是其他语言编写的代码或者操作系统底层的代码,看不到具体的方法

Object: public native int hashCode(); public final native Class<?> getClass(); 5.Objects对象的工具类(了解) package com.itheima.demo03Objects; import java.util.Objects; /* java.util.Objects类:操作对象的工具类,里边的方法都是静态的 Objects中的方法都是防止空指针异常的 注意: 工具类中的方法一般都是静态的,可以通过类名直接使用 Obejcts工具类中的equals方法 static boolean equals​(Object a, Object b) :判断两个对象是否相等,相等返回true,不相等返回false 底层源码: public static boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b)); } */ public class Demo01Objects { public static void main(String[] args) { //String s1 = "aaa"; String s1 = null; String s2 = "bbb"; //boolean b1 = s1.equals(s2);// s1=null null是不能调用方法的,会抛出空指针异常NullPointerException boolean b1 = s1 != null ? s1.equals(s2) : s2 == null; System.out.println(b1); boolean b2 = Objects.equals(s1,s2); System.out.println(b2); //(s1 == s2) || (s1 != null && s1.equals(s2)) } }

添加equals方法的模版:

@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Student student = (Student) o; if (age != student.age) return false; return name != null ? name.equals(student.name) : student.name == null; }

@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Student student = (Student) o; return age == student.age && Objects.equals(name, student.name); } 二.Date类 1.毫秒值的概念和作用(了解) java.util.Date类:用于描述日期和时间的类 类 Date 表示特定的瞬间,精确到毫秒。 1秒=1000毫秒 1 天 = 24 × 60 × 60 = 86400 秒 = 86400*1000 = 86400000毫秒 ----------------------------------------------- 时间原点:0毫秒的时间点 1970 年 1 月 1 日 00:00:00 英国格林威治时间(世界标准时间) 中国:东八区 时间+8个小时的时差 1970 年 1 月 1 日 08:00:00 把日期和时间转换为毫秒值:就是时间原点和当前时间的一个差值 当前时间(2020年4月27日11:26:33)-时间原点(1970年1月1日 00:00:00)=把当前时间转换为毫秒值(12312412514312) 毫秒值的作用:用于对时间进行计算 工作:计算两个时间的差值,把时间转换为毫秒值计算 "2020年4月27日11:26:33" - "2019年3月5日12:26:33" = 没法计算 把时间转换为毫秒值,使用毫秒值相减 15888123123123 - 15734324324233 = 324324毫秒==>转换为时间(324324毫秒/1000/60/60/24)天

2.Date类的构造方法和成员方法(重点) package com.itheima.demo04Date; import java.util.Date; /* java.uti.Date类 构造方法: Date() 重点 Date(long date) 参数传递毫秒值 成员方法: long getTime() 重点 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 void setTime(long time) 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 */ public class Demo01Date { public static void main(String[] args) { show04(); } /* void setTime(long time) 参数传递毫秒值,把毫秒值转换为Date日期 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 此方法相当于Date类的带参构造方法的作用 Date(long date) 参数传递毫秒值,把毫秒值转换为Date日期 */ private static void show04() { Date date = new Date(); System.out.println(date);//Mon Apr 27 11:43:53 CST 2020 date.setTime(0L); System.out.println(date);//Thu Jan 01 08:00:00 CST 1970 } /* long getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 把当前日期转换为毫秒值(当前日期和时间原点之间共经历了多少毫秒) */ private static void show03() { Date date = new Date(); System.out.println(date);//Mon Apr 27 11:42:35 CST 2020 long time = date.getTime(); System.out.println(time);//1587958955907 } /* Date类的带参数构造方法: Date(long date) 参数传递毫秒值,把毫秒值转换为Date日期 注意: 在时间和日期相关的类中,long类型的值传递的就是毫秒值 */ private static void show02() { Date d1 = new Date(0L); System.out.println(d1);//Thu Jan 01 08:00:00 CST 1970 Date d2 = new Date(31124324324234L); System.out.println(d2);//Fri Apr 16 13:38:44 CST 2956 } /* Date类的空参数构造方法: Date() 获取当前系统的时间和日期 CST:中国标准时间(北京) */ private static void show01() { Date date = new Date(); System.out.println(date); //Mon Apr 27 11:37:07 CST 2020 } } 三.DateFormat类 1.DateFormat类介绍(了解) java.text.DateFormat类 public abstract class DateFormat extends Format DateFormat 是日期/时间格式化子类的抽象类==> DateFormat是Format类的子类,DateFormat本身还是一个抽象类 无法直接创建对象使用 作用: 它以与语言无关的方式格式化并解析日期或时间。 格式化(也就是日期 -> 文本) 解析(文本-> 日期) DateFormat类的成员方法: String format(Date date) 传递指定的日期,把日期格式化为符合模式的字符串 Date parse(String source) 把符合模式的字符串解析为Date日期 ----------------------------------------------------------------- DateFormat本身还是一个抽象类,无法直接创建对象使用,需要使用DateFormat类的子类创建对象使用 java.text.SimpleDateFormat类 extends DateFormat类 SimpleDateFormat类构造方法 SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。 参数: String pattern:传递日期和时间的模式 在模式中写y代表年 在模式中写M代表月 在模式中写d代表日 在模式中写H代表时 在模式中写m代表分 在模式中写s代表秒 在模式中写S代表毫秒 "yyyy-MM-dd HH:mm:ss" "2020-04-27 11:57:03" "yyyy/MM/dd HH:mm:ss" "yyyy年MM月dd日 HH时mm分ss" 注意: 1.表示模式的字母不能改变(y,M...),字母的连接符号可以改变(-,/...) 2.表示模式的字母严格区分大小写 2.DataFormat类的常用方法(重点) package com.itheima.demo05DateFormat; import java.text.SimpleDateFormat; import java.util.Date; /* 使用DateFormat类中的常用方法 */ public class Demo01DateFormat { public static void main(String[] args) { /* String format(Date date) 传递指定的日期,把日期格式化为符合模式的字符串 使用步骤: 1.创建SimpleDateFormat对象,构造方法中传递执行的模式 2.调用SimpleDateFormat对象中的方法format把日期格式化为符合模式的字符串 */ //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss"); Date date = new Date(); System.out.println(date);//Mon Apr 27 14:05:38 CST 2020 String s = sdf.format(date); System.out.println(s);//2020-04-27 14:05:38 2020年04月27日 14时06分37 } } package com.itheima.demo05DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Demo02DateFormat { public static void main(String[] args) throws ParseException { /* Date parse(String source) 把符合模式的字符串解析为Date日期 实现步骤: 1.创建SimpleDateFormat对象,构造方法中传递执行的模式 2.调用SimpleDateFormat对象中的方法parse,把符合模式的字符串解析为Date日期 */ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); /* public Date parse(String source) throws ParseException parse方法抛出了解析异常ParseException 当传递的字符串参数"2000-1-11"和构造方法中的模式"yyyy-MM-dd"不匹配的时候,就会抛出ParseException解析异常 调用了一个抛出异常的方法,有两种处理方式: 1.使用throws关键字继续把异常抛出给方法的调用者处理,最终抛出给JVM 2.使用try...catch自己手动的处理异常 快捷键: 把鼠标放在报异常的位置 alt+回车 */ Date date = sdf.parse("2000-1-11"); System.out.println(date); } } 四.Calendar类

1.Calendar类介绍&创建对象的方式(重点) package com.itheima.demo06Calendar; import java.util.Calendar; /* java.util.Calendar类:日历类 我们可以使用Calendar类中的方法获取日历上的字段(年,月,日,时,分,秒...) 我们可以使用Calendar类中的方法修改日历上的字段的值 2020-->2030 4月-->6月 我们可以使用Calendar类中的方法把日历上字段的值增加|减少 2020-5=2015 4月+3月=7月 我们可以使用Calendar类中的方法把日历对象转换为Date日期对象 Calendar 类是一个抽象类,无法直接创建对象使用,在Calendar类中有一个静态方法叫getInstance 获取Calendar类的子类对象 static Calendar getInstance() 使用默认时区和语言环境获得一个日历。 注意: 西方的月份:0-11月 东方的月份:1-12月 西方的星期:星期日-星期六 东方的星期:星期一-星期日 */ public class Demo01Calendar { public static void main(String[] args) { /* 多态 Calendar cal = null; cal = new GregorianCalendar(zone, aLocale); ------------------------------- Animal a = getAnimal(); new Cat() new Dog(): */ //父类 = 子类对象 Calendar c = Calendar.getInstance(); System.out.println(c); } }

输出结果:

java.util.GregorianCalendar[time=1587968983189,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=3,WEEK_OF_YEAR=18,WEEK_OF_MONTH=5,DAY_OF_MONTH=27,DAY_OF_YEAR=118,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=2,HOUR_OF_DAY=14,MINUTE=29,SECOND=43,MILLISECOND=189,ZONE_OFFSET=28800000,DST_OFFSET=0] 2.Calendar类中的常用成员方法(重点) package com.itheima.demo06Calendar; import java.util.Calendar; import java.util.Date; /* Calendar类的常用方法 int get(int field) 获取给定日历字段的值。 void set(int field, int value) 将给定的日历字段设置为给定值。 void add(int field, int amount) 把日历字段增加|减少指定的值 Date getTime() 把日历转换为日期对象 注意: 以上方法的参数(int field),让我们传递指定的日历字段,这些日历字段在Calendar类中被定义为了常量 年:public final static int YEAR = 1; 月:public final static int MONTH = 2; 日:public final static int DATE = 5; 日:public final static int DAY_OF_MONTH = 5; 时:public final static int HOUR = 10; 分:public final static int MINUTE = 12; 秒:public final static int SECOND = 13; 毫秒:public final static int MILLISECOND = 14; */ public class Demo02Calendar { public static void main(String[] args) { show05(); } /* void setTime(Date date) 把Date日期转换为日历对象 */ private static void show05() { Calendar c = Calendar.getInstance(); System.out.println(c.get(Calendar.YEAR)+"年"+c.get(Calendar.MONTH)+"月"+c.get(Calendar.DATE)+"日");//2020年3月27日 c.setTime(new Date(0L)); System.out.println(c.get(Calendar.YEAR)+"年"+c.get(Calendar.MONTH)+"月"+c.get(Calendar.DATE)+"日");//1970年0月1日 } /* Date getTime() 把日历转换为日期对象 */ private static void show04() { Calendar c = Calendar.getInstance(); Date date = c.getTime(); System.out.println(date);//Mon Apr 27 14:58:05 CST 2020 } /* void add(int field, int amount) 把日历字段增加|减少指定的值 参数: int field:指定的日历字段 int amount:给字段增加|减少的值 传递正数:增加 传递负数:减少 */ private static void show03() { //获取Calendar对象 Calendar c = Calendar.getInstance(); //把年-5年 c.add(Calendar.YEAR,-5); //把月份+3月 c.add(Calendar.MONTH,3); //把日-10天 //c.add(Calendar.DATE,-10);//17号 c.add(Calendar.DATE,10);//8月6日 //获取年 int year = c.get(Calendar.YEAR); System.out.println(year+"年");//2015年 //获取月 int month = c.get(Calendar.MONTH); System.out.println((month+1)+"月");//7月 //获取日 int date = c.get(Calendar.DAY_OF_MONTH); System.out.println(date+"日");//17日 } /* void set(int field, int value) 将给定的日历字段设置为给定值。 参数: int field:指定的字段 int value:设置指定的值 同时设置年月日,建议使用以下方法 public final void set(int year, int month, int date) */ private static void show02() { //获取Calendar对象 Calendar c = Calendar.getInstance(); //把年设置8888年 c.set(Calendar.YEAR,8888); //把月份设置为8月 c.set(Calendar.MONTH,7); //把日设置为8日 c.set(Calendar.DATE,8); //同时设置年月日 c.set(9999,8,9); //获取年 int year = c.get(Calendar.YEAR); System.out.println(year+"年"); //获取月 int month = c.get(Calendar.MONTH); System.out.println((month+1)+"月"); //获取日 int date = c.get(Calendar.DAY_OF_MONTH); System.out.println(date+"日"); } /* int get(int field) 获取给定日历字段的值。 参数: int field:传递指定的日历字段 */ private static void show01() { //获取Calendar对象 Calendar c = Calendar.getInstance(); //获取年 //int year = c.get(1); int year = c.get(Calendar.YEAR); System.out.println(year+"年"); //获取月 int month = c.get(Calendar.MONTH); System.out.println((month+1)+"月"); //获取日 //int date = c.get(Calendar.DATE); int date = c.get(Calendar.DAY_OF_MONTH); System.out.println(date+"日"); } } 五.Math类(重点) package com.itheima.demo07Math; /* java.lang.Math类:数学工具类 Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 Math类中的方法都是静态方法,通过类名.方法名(参数)可以直接使用 Math类中私有了构造方法,不让我们直接创建对象使用 private Math() {} 成员方法: public static int abs(int a) 获取参数a的绝对值: public static double ceil(double a) 向上取整 1.1 2.0 1.9 2.0 public static double floor(double a) 向下取整 1.1 1.0 1.99999 1.0 public static long round(double a) 四舍五入取整 5.5 6 5.49999 5 public static double pow(double a, double b) 获取a的b次幂 2^3 2^4 */ public class Demo01Math { public static void main(String[] args) { //public static int abs(int a) 获取参数a的绝对值: System.out.println(Math.abs(10));//10 System.out.println(Math.abs(-10));//10 System.out.println(Math.abs(0.1));//0.1 System.out.println(Math.abs(-0.1));//0.1 System.out.println("--------------------------------"); //public static double ceil(double a) 向上取整 System.out.println(Math.ceil(5.1));//6.0 System.out.println(Math.ceil(5.9));//6.0 System.out.println(Math.ceil(-5.1));//-5.0 System.out.println(Math.ceil(-5.9));//-5.0 System.out.println("--------------------------------"); //public static double floor(double a) 向下取整 System.out.println(Math.floor(5.1));//5.0 System.out.println(Math.floor(5.9));//5.0 System.out.println(Math.floor(-5.1));//-6.0 System.out.println(Math.floor(-5.9));//-6.0 System.out.println("---------------------------"); //public static long round(double a) 四舍五入取整 System.out.println(Math.round(5.5));//6 System.out.println(Math.round(5.499999999));//5 System.out.println("--------------------------"); //public static double pow(double a, double b) 获取a的b次幂 System.out.println(Math.pow(2.0,3.0));//8.0 System.out.println(Math.pow(2.0,-3.0));//0.125 System.out.println(Math.pow(-2.0,3.0));//-8.0 System.out.println(Math.pow(-2.0,-3.0));//-0.125 System.out.println("--------------------------"); /* static double random() 获取一个随机的小数,该值大于等于 0.0 且小于 1.0。 [0.0,1.0) 0.6974873607317376 0.44954296961350837 0.07532574147331605 0.4034629488590904 0.7121695638217205 0.26027976396027486 0.6562874871560727 0.3795562141362999 0.7662793537891729 0.2813382012117768 */ for (int i = 0; i < 10; i++) { System.out.println(Math.random()); } } } 六.System类(重点) package com.itheima.Demo08System; import java.util.Date; /* java.lang.System类 System 类包含一些有用的类字段和方法。它不能被实例化(私有了构造方法)。 里边的方法都是静态的,通过类名.方法名(参数)可以直接使用 成员方法: public static void exit(int status) 终止当前运行的 Java 虚拟机,非零表示异常终止 public static long currentTimeMillis() 返回当前时间(以毫秒为单位) static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 数组复制 */ public class Demo01System { public static void main(String[] args) { show03(); } /* static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 数组复制(了解) 参数: src - 源数组。 srcPos - 源数组中的起始位置。 dest - 目标数组。 destPos - 目标数据中的起始位置。 length - 要复制的数组元素的数量。 需求: 把原数组[1,2,3,4,5]的前3个元素复制到目标数组中的前3个索引处[6,7,8,9,10] 复制前:目标数组[6,7,8,9,10] 复制后:目标数组[1,2,3,9,10] */ private static void show03() { int[] src = {1,2,3,4,5}; int[] dest = {6,7,8,9,10}; System.out.println("复制前遍历数组目标数组dest"); for (int i = 0; i < dest.length; i++) { System.out.println(dest[i]); } //数组复制 System.arraycopy(src,0,dest,0,3); System.out.println("复制后遍历数组目标数组dest"); for (int i = 0; i < dest.length; i++) { System.out.println(dest[i]); } } /* public static long currentTimeMillis() 返回当前时间(以毫秒为单位) 返回的当前时间到1970 年 1 月 1 日00:00:00所经历的毫秒值 和new Date().getTime()是等价的 作用: 可以测试程序的效率 需求: 在控制台输出1-10000,计算这段代码执行了多少毫秒 */ private static void show02() { long s = System.currentTimeMillis(); //System.out.println(s);//1587973244384 for (int i = 1; i <=10000 ; i++) { System.out.println(i); } long e = new Date().getTime(); //System.out.println(e);//1587973244386 System.out.println("程序执行共耗时:"+(e-s)+"毫秒值!");//程序执行共耗时:267毫秒值! } /* public static void exit(int status) 终止当前运行的 Java 虚拟机,非零表示异常终止 参数: int status:状体码 0:正常终止 非0:表示异常终止 */ private static void show01() { while (true){ System.out.println("我想有一个女同桌!"); //break; System.exit(1);//终止JVM } //System.out.println("后续代码!"); } }
标签:

DAY04Object、Date类、DateFormat类、Calendar类、Math类、System类由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“DAY04Object、Date类、DateFormat类、Calendar类、Math类、System类