包头网站开发建设济南 网站建设那家好
学习目标
能够说出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 2020String 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类中的方法,可以获取对象的哈希值,哈希值是一个系统随机给出的十进制的整数 123123123Integer.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方法,打印对象的属性值(成员变量)*//*@Overridepublic String toString() {return "Person{name = "+name+" ,age = "+age+"}";}*///快捷键:alt+insert==>toString方法@Overridepublic 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@4554617cSystem.out.println(s2.toString());//com.itheima.demo02equals.Student@74a14482//使用Object类的equals方法,比较两个对象的地址值是否相等boolean b = s1.equals(s2);System.out.println(b);//falses1=s2;//把s2的地址值赋值给s1System.out.println(s1);//com.itheima.demo02equals.Student@74a14482System.out.println(s2);//com.itheima.demo02equals.Student@74a14482boolean b2 = s1.equals(s2);System.out.println(b2);//trueStudent s3 = new Student("迪丽热巴",18);Student s4 = new Student("迪丽热巴",18);System.out.println(s3);//com.itheima.demo02equals.Student@1540e19dSystem.out.println(s4);//com.itheima.demo02equals.Student@677327b6Random 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)*/@Overridepublic 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 38boolean b = this.name.equals(s.name) && this.age == s.age;return b;}//obj不是Student,直接返回falsereturn false;}//重点:快捷键 alt+insert 重写equals方法/*@Overridepublic boolean equals(Object o) {if (this == o) {return true;}//getClass() != o.getClass() 使用反射技术判断对象的类型 相当于 obj instanceof Studentif (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是不能调用方法的,会抛出空指针异常NullPointerExceptionboolean 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 2020date.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 2020long 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 1970Date 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 2020String 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 ParseExceptionparse方法抛出了解析异常ParseException当传递的字符串参数"2000-1-11"和构造方法中的模式"yyyy-MM-dd"不匹配的时候,就会抛出ParseException解析异常调用了一个抛出异常的方法,有两种处理方式:1.使用throws关键字继续把异常抛出给方法的调用者处理,最终抛出给JVM2.使用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.0public static double floor(double a) 向下取整 1.1 1.0 1.99999 1.0public static long round(double a) 四舍五入取整 5.5 6 5.49999 5public 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));//10System.out.println(Math.abs(-10));//10System.out.println(Math.abs(0.1));//0.1System.out.println(Math.abs(-0.1));//0.1System.out.println("--------------------------------");//public static double ceil(double a) 向上取整System.out.println(Math.ceil(5.1));//6.0System.out.println(Math.ceil(5.9));//6.0System.out.println(Math.ceil(-5.1));//-5.0System.out.println(Math.ceil(-5.9));//-5.0System.out.println("--------------------------------");//public static double floor(double a) 向下取整System.out.println(Math.floor(5.1));//5.0System.out.println(Math.floor(5.9));//5.0System.out.println(Math.floor(-5.1));//-6.0System.out.println(Math.floor(-5.9));//-6.0System.out.println("---------------------------");//public static long round(double a) 四舍五入取整System.out.println(Math.round(5.5));//6System.out.println(Math.round(5.499999999));//5System.out.println("--------------------------");//public static double pow(double a, double b) 获取a的b次幂System.out.println(Math.pow(2.0,3.0));//8.0System.out.println(Math.pow(2.0,-3.0));//0.125System.out.println(Math.pow(-2.0,3.0));//-8.0System.out.println(Math.pow(-2.0,-3.0));//-0.125System.out.println("--------------------------");/*static double random() 获取一个随机的小数,该值大于等于 0.0 且小于 1.0。 [0.0,1.0)0.69748736073173760.449542969613508370.075325741473316050.40346294885909040.71216956382172050.260279763960274860.65628748715607270.37955621413629990.76627935378917290.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);//1587973244384for (int i = 1; i <=10000 ; i++) {System.out.println(i);}long e = new Date().getTime();//System.out.println(e);//1587973244386System.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("后续代码!");}
}