1 Math
1.1 概述
Math 包含执行基本数字运算的方法
1.2 调用方法
Math 类中无构造方法,但内部的方法都是静态的,可以直接调用
//范例
int n = 4;
Math.abs(n);
1.3 常用方法
2 System
2.1 常用方法
案例
需求:在控制台输出1-10000,计算这段代码执行了多少毫秒
public class Test {
public static void main(String[] args) {
long start = System.currentTimeMillis();
for (int i = 1; i <= 10000; i++) {
System.out.println(i + " ");
}
long end = System.currentTimeMillis();
System.out.println("共耗时" + (end - start) + "毫秒");
}
}
运行结果:
3 Object类的toString方法
3.1 概述
Object 是类层次结构的根,每个类都可以将 Object 作为超类。所有的类都直接或者间接的继承自该类,换句话说,该类所具备的方法,所有类都会有一份
3.2 查看源码的方法
● 选中方法:Ctrl + B
3.3 重写toString方法的方式
1 Alt + Insert 选中toString
2 在类的空白区域,右键 -> Generate -> 选择 toString
3.4 toString 方法的作用
以良好的格式,更方便的展示对象中的属性值
示例代码:
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.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;
}
@Override
public String toString() {
return "name:" + name + ", age:" + age;
}
}
public class Test {
public static void main(String[] args) {
Student s1 = new Student("陆沉",23);
System.out.println(s1);
System.out.println(s1.toString());
}
}
运行结果:
4 Object类的 equals 方法
4.1 equals 方法的作用
用于对象之间的比较,返回 true 和 false 的结果
//范例
s1.equals(s2)
4.2 重写 equals 方法的场景
不希望比较对象的地址值,想要结合对象属性进行比较的时候
4.3 重写equals 方法的方式
1. alt + insert 选择equals() and hashCode(),IntelliJ Default,一路next,finish即可
2. 在类的空白区域,右键 -> Generate -> 选择equals() and hashCode(),后面的同上。
示例代码:
class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.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;
}
@Override
public boolean equals(Object o) {
//this -- s1
//o -- s2
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o; //student -- s2
if (age != student.age) return false;
return name != null ? name.equals(student.name) : student.name == null;
}
}
public class ObjectDemo {
public static void main(String[] args) {
Student s1 = new Student();
s1.setName("张三");
s1.setAge(30);
Student s2 = new Student();
s2.setName("张三");
s2.setAge(30);
//需求:比较两个对象的内容是否相同
System.out.println(s1.equals(s2));
}
}
运行结果:
5 Arrays
5.1 常用方法
5.2 工具类设计思想
1 构造方法用 private 修饰
2 成员用 public static 修饰
6 日期类
6.1 Date类
6.1.1 Date类概述
Date 代表了一个特定的时间,精确到毫秒
6.1.2 Date类构造方法
示例代码:
import java.util.Date;
public class MyDate {
public static void main(String[] args) {
//public Date():分配一个 Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
Date d1 = new Date();
System.out.println(d1);
//public Date(long date):分配一个 Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数
long date = 1000*60*60;
Date d2 = new Date(date);
System.out.println(d2);
}
}
运行结果:
6.1.3 Date类常用方法
示例代码:
import java.util.Date;
public class MyDate {
public static void main(String[] args) {
//创建日期对象
Date d = new Date();
//public long getTime():获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值
// System.out.println(d.getTime());
// System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");
//public void setTime(long time):设置时间,给的是毫秒值
// long time = 1000*60*60;
long time = System.currentTimeMillis();
d.setTime(time);
System.out.println(d);
}
}
运行结果:
6.2 SimpleDateFormat类
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。
6.2.1 SimpleDateFormat类构造方法
6.2.2常用方法
- 格式化(从Date到String)
- public final String format(Date date):将日期格式化成日期/时间字符串
- 解析(从String到Date)
- public Date parse(String source):从给定字符串的开始解析文本以生成日期
示例代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyDate {
public static void main(String[] args) throws ParseException {
//格式化:从 Date 到 String
Date d = new Date();
// SimpleDateFormat sdf = new SimpleDateFormat();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String s = sdf.format(d);
System.out.println(s);
System.out.println("--------");
//从 String 到 Date
String ss = "2048-08-09 11:11:11";
//ParseException
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dd = sdf2.parse(ss);
System.out.println(dd);
}
}
运行结果:
6.3 Calendar
6.3.1 概述
Calendar 为特定瞬间与一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
Calendar 提供了一个类方法 getInstance 用于获取这种类型的一般有用的对象。
该方法返回一个Calendar 对象。
其日历字段已使用当前日期和时间初始化:Calendar rightNow = Calendar.getInstance();
6.3.2 Calendar类常用方法
public class MyDate {
public static void main(String[] args) {
//获取日历类对象
Calendar c = Calendar.getInstance();
//public int get(int field):返回给定日历字段的值
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int date = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + date + "日");
//public abstract void add(int field, int amount):根据日历的规则,将指定的时间量添加或减去给定的日历字段
//需求1:3年前的今天
// c.add(Calendar.YEAR,-3);
// year = c.get(Calendar.YEAR);
// month = c.get(Calendar.MONTH) + 1;
// date = c.get(Calendar.DATE);
// System.out.println(year + "年" + month + "月" + date + "日");
//需求2:10年后的10天前
// c.add(Calendar.YEAR,10);
// c.add(Calendar.DATE,-10);
// year = c.get(Calendar.YEAR);
// month = c.get(Calendar.MONTH) + 1;
// date = c.get(Calendar.DATE);
// System.out.println(year + "年" + month + "月" + date + "日");
//public final void set(int year,int month,int date):设置当前日历的年月日
c.set(2050,10,10);
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH) + 1;
date = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + date + "日");
}
}
运行结果: