java回顾之API初体验
一、Object类
java.lang.Object类是java语言中的根类,祖宗类。所有的类都直接或间接的继承自Object。
在对象实例化的时候,最终找到的父类就是Object。
1.2、equals()方法判断是否相等
==号:
判断基本数据类型时判断的是值是否相等,判断引用数据类型是判断的是地址值是否相等
equals()
是objec类的一个方法,判断的是两个对象是否相同
无论用哪种方法,建议将常量放在等号的左边,以防止出现空指针或者不报编译错误的错误
1.3、toString()方法
重写toString可以将对象具体的值打印出来,而不是只打印地址,后面可以配合注解使用。
1.4、native关键字
native用来修饰方法,此方法是本地方法,表用调用了非java方法,在java中无法显示,所以无法查看源码
二、日期类Date
public Date() new Date() 将当前的系统时间,转换成Date对象
public Date(long date) new Date(1000) 将指定参数的毫秒值,转换成Date对象
Date d =new Date
getTime() 获取时间对象的毫秒值 d.getTime()
setTime(long time) 设置时间对象的毫秒值 d.setTime(1000)
before(Date date) 判断当前对象是否在参数时间之前
after(Date date) 判断当前对象是否在参数时间之后
2.2、日期格式化类DateFormat
DateFormat是一个抽象类。这个类的功能是对日期格式进行改变,还可以对String字符串类型和Date日期类型做互相转换。
String format(Date date) 格式化:将Date对象转换为Stirng对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date =new Date();
sdf.format(d);
Date parse(String s) 将String对象转换为Date对象
Date date=sdf.parse(s)
2.3 日历类Calendar
Calendar把和时间相关的值都变成了字段,可以更加方便的对各种值进行单独的操作
创建对象有两种方法,一种是直接创建子类GregorianCalendar
GregorianCalendar gc = new GregorianCalendar();
一种是调用静态方法
Calendar c=Calendar.getInstance();
说明 | |
---|---|
int get(int field) | 获取某个字段的值 |
void set(int field,int value) | 设置某个字段的值 |
void add(int field,int amount) | 偏移某个字段的值(加减) |
setTime(Date date) | 把Date对象转成Calendar对象 |
Calender中定义的常量:
Calendar.YEAR : 年
Calendar.MONTH :月
Calendar.DAY_OF_MONTH:日期
Calendar.HOUR:小时
Calendar.MINUTE:分钟
Calendar.SECOND:秒
Calendar.DAY_OF_WEEK:星期
举例说明:
获取对象
Calendar c=Calendar.getInstance(); //代表当前系统时间
获取某个字段的值
int year=c.get(Calendar.YEAR);
//获取月,在日历对象内部,保存月份用的是0-11,所以去除月份要+1;
int month = c.get(Calendar.MONTH);
System.out.println(month+1);
//获取日期
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
//获取小时
int hour = c.get(Calendar.HOUR_OF_DAY);
System.out.println(hour);
//获取分钟
int minute = c.get(Calendar.MINUTE);
System.out.println(minute);
//获取秒
int second = c.get(Calendar.SECOND);
System.out.println(second);
//获取星期!!!日历类里面保存星期是以星期日作为一周的第1天,星期一就是第2天,所以可以将星期定义成数组,下标正好对应正确的星期。
//定义数组
String[] arr = {" ","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
数组的下标 0 1 2 3 4 5 6 7
日历内部存储 1 2 3 4 5 6 7
比如今天是星期一,内部返回的值是2,如此取值,星期就不会错了。
//获取星期
int i = c.get(Calendar.DAY_OF_WEEK); // 1-7
set()和add()方法演示
//把年设置成2000年
c.set(Calendar.YEAR,2000);
//把月设置成10月
c.set(Calendar.MONTH,9);
//让年加10
c.add(Calendar.YEAR,10);
//让日减6
c.add(Calendar.DAY_OF_MONTH,-6);
setTime(Date date)方法演示
//把Date的时间赋值给Calendar
Calendar c = Calendar.getInstance();
c.setTime(d);
2.4Math类
Math表示数学,和数学相关的一些计算方法在这个类中
说明 | |
---|---|
static int abs(int a) | 获取绝对值 |
static double ceil(double a) | 向上取整 |
static double floor(double a) | 向下取整 |
static double pow(double a, double b) | 获取a的b次方 |
static long round(double a) | 四舍五入 |
//获取绝对值
System.out.println(Math.abs(3)); //3
System.out.println(Math.abs(-4)); //4
向上取整
Math.ceil(3.14)//4.0
向下取整
Math.floor(3.14)//3.0
获取a的b次方
Math.pow(2,3)//2的3次方 8.0
四舍五入
Math.round(4.45) 4
Math.round(4.5) 5
2.5、System
方法 | 说明 |
---|---|
static void exit(int status) | 退出虚拟机,0表示正常退出 |
static long currentTimeMillis() | 获取当前时间的毫秒值 |
static void arrayCopy() |
//退出虚拟机,0表示正常退出
System.exit(0);
//获取当前时间的毫秒值
long time = System.currentTimeMillis();
System.out.println(time);
//数组中元素的复制
int[] arr = {11,22,33,44,55,66};
int[] brr = new int[6];
/*
Object src 原数组
int srcPos 原数组开始索引
Object dest 目标数组
int destPos 目标数组开始索引
int length 复制的个数
*/
System.arraycopy(arr,1,brr,0,3); 从arr下标1开始复制3个数字到brr从下标0开始
int[] crr = {11,22,33,44,55};
System.arraycopy(crr,2,crr,0,3); 从crr2开始,复制三个数到0开始
//33 44 55 44 55