常用API
Object类
Object是所有类的父类和基类,超类
规则:
- Object的toString()方法打印出的是内存地址,所以Object 的所有子类建议重写Object类的toString()方法,用来打印出该子类对象的成员信息.

- Object类中的equals()方法,默认比较的是对象的地址值是否相等,通常情况下都要比较内容,所以没有意义,所以Object类建议所有的子类重写equals()方法;
重写equals()存在的问题:
隐含着一个问题,多态的问题,由于重写equals()方法,传入的是Object类型的参数,无法获得到子类自己独有的内容,所以需要向下转型,但是向下转型可能抛出类型转换异常,所以要先判断需要转型的参数变量是否是要转成的类型的变量,用instanceof关键字来判断.

- 重写equals()方法会伴随着重写hashCode()方法,hashCode()方法是重写Objects类里的方法,Objects在util包下,所以重写hashCode()方法伴随着导包的动作.
Object类的toString()方法,用来打印出该子类对象的成员信息.

Date日期和Clendar 日期

jdk1.8之后新版本日期类计算时间更加方便,在java.time包下

Calendar日期接口的用法

代码演示:
//Calendar抽象类获取给定的日历的字段值
//Calendar的所有属性都是静态常量字段,都是用 public static final修饰的,可以通过类名直接调用
public static void main(String[] args){
//用Carlendar抽象类的getInterface()方法获得抽象类的实现类对象,多态写法
Carlendar carlendar = Carlendar.getInterface();
//使用
//获取年份
int year = carlendar.get(Carlendar.YEAR);
//获取月份
int month = calendar.get(Calendar.MONTH);
}
Calendar类
概念
java.util.Calendar 日历类,抽象类,在Date类后出现的,替换掉了很多Date类中的方法。该类将所有的可能用到的时间信息封装为静态成员变量,通过类名.静态成员变量获取时间字段值
获取方式
由于Calendar类是一个抽象类,语言敏感性,Calendar类并不是直接创建对象来获取时间属性值,而是通过静态方法创建,返回子类对象。
静态方法如下:
-
public static Calendar getInstance():使用默认时区和默认的语言环境获取一个日历对象
例如:
import java.util.Calendar; pubic class Demo01Calendar { public static void main(String[] args) { Calendar calendar = Calendar.getInstance();// 获取一个日历的对象 } }
常用的方法
- public int get(int field):获取给定的日历字段值
- public void set(int field,int value):将给定的字段设定为给定的值
- public abstract void add(int field,int amount):根据日历规则,将给定的日历字段添加或者减少指定的时间值
- public Date getTime():把日历对象转换成日期对象
- public long getTimeInMillis():获取日历对象对应的毫秒值
Calendar类中提供了很多个成员常量,代表给定的日历字段:
| 字段值 | 含义 |
|---|---|
| YEAR | 年 |
| MONTH | 月份 |
| DATE | 月中的某一天(几号) |
| DAY_OF_MONTH | 月中的第几天 |
| HOUR | 时(12小时制) |
| HOUR_OF_DAY | 时(24小时制) |
| MINUTE | 分 |
| SECOND | 秒 |
| DAY_OF_WEEK | 一周中的第几天(周几,周日为1) |
备注:
1. 在西方的星期,开始为周日,中国为周一
2. 在Calendar类中,月份的表示是以0-11代表的是1-12月
3. 日期是有大小关系,时间靠后,时间越大。
System类
java.lang.System类中提供了大量的静态方法,主要是用来获取与系统相关的信息或者是进行系统级操作。
它不能被实例化。也不能被继承。
常用的api方法:
-
public static long currentTimeMills(): 获取当前系统时间对应的毫秒值
-
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):将数组中指定的数据拷贝到另一个数组当中
-
public static void exit(int status): 终止当前正在执行的java虚拟机 0代表正常退出,非0异常退出
currentTimeMills()方法
实际上,它获取到的是距1970年1月1日 0时0分0秒到当前时间的毫秒差值
arraycopy()方法
将一个数组当中的元素复制到另一个数据当中,数组的拷贝动作是一个系统级的操作,性能比较高。
arraycopy方法当中涉及到5个参数:
| 参数列表 | 参数名称 | 参数类型 | 参数含义 |
|---|---|---|---|
| 1 | src | Object | 源数组 |
| 2 | srcPos | int | 源数组索引的起始位置 |
| 3 | dest | Object | 目标数组 |
| 4 | destPos | int | 目标数组索引的起始位置 |
| 5 | length | int | 复制元素的个数 |
StingBuilder类
System 类
在 java.lang.System 类中提供啦大量的静态方法和变量,可以获取与系统相关的信息或者系统级操作,System类不能被实例化
常用的方法:
public static long currentTimeMills(); 获取当前时间的毫秒值
public static void arraycopy(Object src , int srcPos,Object dest, int destPos,int length); //将源数组里的从起始位置开始,复制到目标数组,从起始位置开始,最后是复制的元素的个数多长
| | | |
| ---- | ---- | ---- |
| | | |
public static void exit(int status):终止当前正在执行的java虚拟机,0代表正常退出,非0代表异常退出
代码演示:
public class DemoSystem {
public static void main(String[] args) {
/*long begin = System.currentTimeMillis();
for (int i = 0; i <10000 ; i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println("时间差:"+(end-begin));*/
int[] srcArr = {1,2,3,4,5,6,7};
int[] destArr = {6,7,8,9,10};
System.arraycopy(srcArr,0,destArr,0,3);
for (int i = 0; i < destArr.length; i++) {
System.out.print(destArr[i]+" ");
}
}


浙公网安备 33010602011771号