1. Math
1.1 Math类概述
Math 类包含执行基本数字运算的方法
没有构造方法,如何使用类中的成员?
看类的成员是否都是静态的,如果是,通过类名就可以直接调用
1.2 Math 类的常用方法
2. System
2.1 System 类概述
System 包含几个有用的类字段和方法,它不能被实例化,可以通过类名访问
2.2 System 类的常用方法
3. Object
3.1 Object 类的概述
Object 是类层次结构的根,每个类都可以将 Object 作为超类,所有类都直接或者间接继承自该类。
构造方法:public Object()
回想面向对象中,为什么说子类的构造方法默认访问的是父类的无参构造方法?
因为他们的顶级父类只有无参构造方法
3.2 Object 类常用方法
自动生成:Alt + Ins
4. Arrays
4.1 冒泡排序
- 排序:将一组数据按照固定的规则进行排列
- 冒泡排序:一种排序方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有的数据进行操作,直至所有数据按要求完成排序。
- 若有 n 个元素进行排序,总共需要比较 n-1 次
- 每一次比较完毕,下一次就会少一个元素参与比较
4.2 Arrays 类的概述和常用方法
- Arrays 类包含用于操作数组的各种方法
- Arrays 类是一个工具类
- 工具类的设计思想
- 构造方法用 private 修饰(防止外界创建对象)
- 成员用 public static 修饰(为了让使用类名来访问成员方法)
5. 基本类型包装类
5.1 基本类型包装类概述
- 将基本数据类型封装成对象的好处在于可以在对象中定义功能方法操作该数据
- 常用操作之一:用于基本数据类型与字符串之间的转换
5.2 Integer 类的概述和使用
-
Integer:包装一个对象中的原始类型 int 的值
-
构造方法已过时(但是还可以用),采用静态方法获取对象
//public static Integer valueOf(int i):返回表示表示指定的 int 值的 Integer 实例
Integer i1 = Integer.valueOf(100);
System.out.println(i1); //输出: 100
//public static Integer valueOf(String s):返回一个保存指定值的 Integer 对象 String
Integer i2 = Integer.valueOf("100");
System.out.println(i2); //输出: 100
5.3 int 和 String 的相互转换
基本类型包装类最常见的操作就是:用于基本类型和字符串之间的相互转换
- int→String
public static String valueOf(int i):返回 int 参数的字符串表示形式,该方法是 String 类中的方法。 - String→int
public static int parseInt(String s):将字符串解析为 int 类型,该方法是 Integer 类中的方法。
public class IntegerDemo{
public static void main(String[] args){
//int --- String
int i1 = 100;
String s1 = String.valueOf(i1);
System.out.println(s);
//String --- int
String s2 = "100";
int i2 = Integer.parseInt(s2);
System.out.println(s2);
}
}
5.4 自动装箱和拆箱
- 装箱:把基本数据类型转换为对应的包装类类型
- 拆箱:把包装类类型转换为对应的基本数据类型
//装箱:把基本数据类型转换为对应的包装类类型
Integer i1 = Integer.valueOf(100); //装箱
Integer i2 = 100; //自动装箱,但底层也是Integer.valueOf(100)
//拆箱:把包装类类型转换为对应的基本数据类型
//要实现 i2 += 200;
i2 = i2.intValue() + 200; //先拆箱,再装箱
i2 += 200; //先自动拆箱,将i2转换为int类型,与200相加,
//然后自动装箱赋值给i2
Integer i = 100;//自动装箱
i += 100; //i = i + 100; i + 100 自动拆箱; i = i + 100 自动装箱
Integer i = null;
i += 100; //报错:NullPointerException
Integer i = null;
if(i != null){
i += 100;
}
注意:在使用包装类类型的时候,如果做操作,最好先判断是否为空
推荐:只要是对象,在使用前就必须进行不为 null 的判断
6. 日期类
6.1 Date 类概述和构造方法
Date 代表了一个特定的时间,精确到毫秒
注:标准基准时间:1970年1月1日00:00:00
package com.cappuccino;
import java.util.Date;
/*
public Date():分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
public Date(long date):分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数
标准基准时间:1970年1月1日00:00:00
CST:中国标准时间
*/
public class DateDemo01 {
public static void main(String[] args){
Date d1 = new Date();
System.out.println(d1);
long date = 1000*60*60; // 1小时
Date d2 = new Date(date);
System.out.println(d2); //输出: Thu jan 01 09:00:00 CST 1970
/*
为什么是 09:00:00 而不是01:00:00?
因为北京在东八区
*/
}
}
6.2 Date 类的常用方法
package com.cappuccino;
import java.util.Date;
/*
public long getTime():获取的是日期对象从1970年1月1日00:00:00到现在的毫秒值
public void setTime(long time):设置时间,给的是毫秒值
*/
public class DateDemo02 {
public static void main(String[] args) {
Date d = new Date(); //创建日期对象
System.out.println(d.getTime());
System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");
System.out.println(d); //当前时间
long time = System.currentTimeMillis();//获取当前时间
d.setTime(time);
System.out.println(d);
}
}
6.3 SimpleDateFormat 类概述
SimpleDateFormat 是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。这里重点介绍 日期格式化和解析。
日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从’A’ 到 ‘Z’ 以及从 ‘a’ 到 ‘z’ 引导的字母被解释为表示日期或时间字符串的组件的模式字母。
常用的模式字母及其对应关系:
- y ------- 年
- M ------- 月
- d ------- 日
- H ------- 时
- m ------- 分
- s ------- 秒
6.4 SimpleDateFormat 的构造方法
- 格式化(从 Date 到 String)
public final String format(Date date):将日期格式化成日期/时间字符串 - 解析(从 String 到 Date)
public Date parse(String sourse):从给定字符串的开始解析文本以生成日期
package com.cappuccino;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
构造方法:
public SimpleDateFormat():构造一个SimpleDateFormat,使用默认模式和日期格式
public SimpleDateFormat(String pattern):构造一个SimpleDateFormat使用给定的模式和默认的日期格式
格式化(从 Date 到 String)
public final String format(Date date):将日期格式化成日期/时间字符串
解析(从 String 到 Date)
public Date parse(String sourse):从给定字符串的开始解析文本以生成日期
*/
public class SimpleDateFormatDemo {
public static void main(String[] args) throws ParseException {
//格式化:从Date到String
Date d1 = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat();
String s1 = sdf1.format(d1);
System.out.println(s1);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s2 = sdf2.format(d1);
System.out.println(s2);
System.out.println("-------");
//解析:从String到Date
String s3 = "2020-11-25 17:13:14"; //日期字符串与模式字符串要对应
Date d2 = sdf2.parse(s3); //ParseException
System.out.println(d2);
}
}
6.5 Calendar 类概述
- Calendar 为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
- Calendar 提供了一个类方法 getInstance 用于获取 Calendar 对象,其日历字段已使用当前日历和时间初始化:
Calendar rightNow = Calendar.getInstance();
package com.cappuccino;
import java.util.Calendar;
/*
Calendar 为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
Calendar 提供了一个类方法 getInstance 用于获取 Calendar 对象,
其日历字段已使用当前日历和时间初始化
Calendar rightNow = Calendar.getInstance();
*/
public class CalendarDemo {
public static void main(String[] args){
Calendar cal = Calendar.getInstance(); //多态的形式
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;//加1是因为月份是从0开始的
int date = cal.get(Calendar.DATE);
System.out.println(year + "-" + month + "-" + date);
}
}