a. 概述
i. Object类是所有类的父类,所有对象都具有该类中的11个方法
ii. 如果一个类我们没有指定其父类,那么默认继承Object
b. toString方法
i. public String toString() :返回该对象的字符串表示。
如:Dog d = new Dog();
String s = d.toString();
System.out.println(s);
或者Dog d = new Dog();
System.out.println(d);
因为我们打印变量名d,编译器会自动调用d.toString()
ii. 默认形式:
包名.类名@地址值
iii. 实际开发中要重写该方法,将本类返回的地址值改成返回该对象中的内容
c. equals方法
i. public boolean equals(Object obj) :指示(判断)其他某个对象是否与此对象“相等”。
ii. 默认比较的是地址值。重写,将比较地址值改为比较内容。
d. native本地方法
有native修饰的方法我们称为本地方法,不是用Java写的,使用底层c/c++写的
比如:
public native int hashCode();
e. equals和==的区别
对于基本类型:
==比较基本类型的数值
equals 没有该方法
对于引用类型:
==比较引用类型的地址值
equals默认比较地址值,如果子类重写了,按照重写比较规则比较
f. Objects类
i. Objects类,我们称之为工具类(其内部所有的方法都是静态的)
ii. 判断两个对象是否相等,避免空指针异常
二. Date类【重点】
a. 概述
作用:代表某一个时间点,可以精确到毫秒
b. 构造方法
i. public Date();创建一个Date对象,代表当前的系统时间
如:Date d = new Date();// Fri Mar 06 20:21:48 CST 2020
ii. public Date(long millis);创建一个Date对象,代表距离国际基准时间millis毫秒后的是个时间。
如:Date dd = new Date(0L);
国际基准时间:
英国1970年1月1日00:00:00
中国1970年1月1日08:00:00
c. 常用方法
i. public long getTime() 把日期对象转换成对应的时间毫秒值。
ii. public void setTime(long time) 修改当前Date对象距离标准时间的毫秒值
三. DateFormat类
a. 概述
i. 作用:让时间和具体的文本之间来回转换
ii. 格式化:Date对象转成时间字符串
解析:时间字符串转成Date对象
b. 构造方法
i. 使用的其子类(SimpleDateFormat)
public SimpleDateFormat(String pattern);
ii. 想要这种格式:
"xxxx年xx月xx日 xx:xx:xx"
对应的pattern这么写呢?
"yyyy年MM月dd日 HH:mm:ss"
我们只需要记住:
y -- 年
M -- 月
d -- 日
H -- 时
m -- 分
s -- 秒
c. 常用方法
i. public String format(Date date); 格式化方法
public Date parse(String time); 解析方法
ii. public class TestDemo {
public static void main(String[] args) throws ParseException {
//1.创建一个SimpleDateFormat对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//2.格式化 format
Date now = new Date();
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);
}
}
四. Calendar类
a. 概述
作用:也是表示某个时间点
b. 常用方法【扩】
使用Calendar的静态方法getInstance();
Calendar c = Calendar.getInstance(); //就会创建一个子类对象,返回
c. get方法示例
public int get(int field)
如:int year = instance.get(Calendar.YEAR);
d. set方法示例
public void set(int field,int value)
如:c1.set(Calendar.YEAR, 1998);
e. add方法示例
public void add(int field,int amount)
如:c2.add(Calendar.DAY_OF_MONTH, 200);
五. Math类
a. 概述
Math中主要包含了一些数学运算相关的方法
Math类中这些方法都是静态的(通过类名就可以直接调用,Math当做一个工具类)
b. 常用方法
public double abs(double d); //求绝对值,如果是正数,那么不变,如果负数那么把负号去掉
public double ceil(double d);//向上取整
public double floor(double d);//向下取整
public long round(double d);// 四舍五入到整数
public double pow(double d1,double d2);//求次幂(次方)
如://3*3*3*3
double pow = Math.pow(3, 4);
六. System
a. 概述
System类中包含几个静态的变量和静态的方法,并且该类是不能创建对象的
经过我们对System类源码的研究,发现System类的构造被私有化了
public final class System {
/** Don't let anyone instantiate this class */
private System() {
}
}
b. 常用方法
public static void exit(int status); 退出JVM虚拟机,按照惯例,参数写0即可!!
public class TestSystem {
public static void main(String[] args) {
//1.试图创建一个System对象
// System s = new System(); //报错! 因为System的构造私有化了
//2.exit
for (int i = 0; i < 10; i++) {
System.out.println("我爱Java"+i);
//退出JVM,整个Java程序都会结束
System.exit(0);
// break; //结束当前的循环,如果循环后面还有代码可以继续执行
}
System.out.println(".....");
}
}
public static long currentTimeMillis(); 获取当前系统之间的毫秒值(距离基准时间的毫秒值)
public class TestSystem02 {
public static void main(String[] args) {
//1.获取当前系统时间的毫秒值
//long millis = System.currentTimeMillis();
//System.out.println(millis);
//2. String StringBuilder 用于字符串拼接的性能测试
long start = System.currentTimeMillis();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 50000; i++) {
sb.append(i);
}
long end = System.currentTimeMillis();
System.out.println("耗时"+(end-start)+"毫秒");
//算法: 空间复杂度(占用的内存) 时间复杂度(运行花费的时间)
}
}
一. Object类【重点】 a. 概述 i. Object类是所有类的父类,所有对象都具有该类中的11个方法 ii. 如果一个类我们没有指定其父类,那么默认继承Object b. toString方法 i. public String toString() :返回该对象的字符串表示。 如:Dog d = new Dog(); String s = d.toString...