常用API

权限修饰符

  • public : 公共的

  • protected: 受保护的

  • (空的): 默认

  • private: 私有的

构造代码块

  • 位置: 类中方法外

  • 执行: 每次调用构造方法之前都会执行一次

  • 使用场景: 执行构造方法之前需要执行的代码就可以放在构造代码块中,eg: 统计该类创建的对象个数

静态代码块

  • 格式: static{}

  • 位置: 类中方法外

  • 执行: 随着类的加载而执行,并且只执行一次,优先于构造方法执行

  • 使用场景: 只需要执行一次的代码就可以放在静态代码块中 eg: 加载驱动,加载配置文件...

局部代码块

  • 格式: {}

  • 位置: 在方法中

  • 执行: 调用方法,执行到局部代码块的位置才执行

  • 使用场景: 主要用来提交释放内存,节省内存空间,但意义不大

  • 静态代码块优先于构造代码块执行

  • 构造代码块优先于构造方法执行

Object类的概述

概述: java.lang.Object类是java中所有类的父类\根类,也就是说java中所有的类都继承了Object类

  • 继承Object类:

  • 直接继承Object类: public class Person /*extends Object*/{}

  • 间接继承Object类: public class Student extends Person{}

  • public toString();返回该对象的字符串表示

  • public boolean equals(Object obj); 判断2个对象是否相等;

toString方法

使用场景: 如果打印对象的时候不希望打印的是地址值,那么就重写toString方法

equals方法

  • Object类的equals方法默认比较的是地址值

  • 如果希望比较的不是地址值,而是所有的属性值,那么就按alt+insert,选择equals() and hashCode()重写就行

在比较两个对象的时候,Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问题。方法如下:

  • public static boolean equals(Object a, Object b):判断两个对象是否相等。

Date类

java.util.Date类表示日期,内部精确到毫秒.表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

  • public Date();创建当前系统时间对应的日期对象

  • public Date(long mills);距离标准基准时间 指定偏移毫秒数 对应的日期对象

  • public long getTime();获取当前日期对象距离标准基准时间的毫秒值

  • public boolean after(Date when) 判断此日期是否在指定日期之后

  • public boolean before(Date when) 判断此日期是否在指定日期之前

  • DateFormat类的概述

    • 概述: java.text.DateFormat 该类可以使得在Date对象与String对象之间进行来回转换.

      • 格式化: 按照指定的格式,把Date对象转换为String对象。

      • 解析: 按照指定的格式,把String对象转换为Date对象。

    • 注意: DateFormat是一个抽象类,无法创建对象,应该使用其子类来实现Date和String之间的转换

SimpleDateFormat类

  • 概述:java.text.SimpleDateFormat类继承DateFormat类,所以该类也可以实现Date和String对象之间的相互转化

  • 构造方法:

    • public SimpleDateFormat(String pattern);创建日期格式化对象,并且指定日期格式;

    • 日期格式:

      • y:年

      • M:月

      • d:日

      • H:时

      • m:分

      • s:秒

      • ....

    • 常见的日期格式:

      • yyyy-MM-dd HH:mm:ss

      • yyyy年MM月dd日 HH:mm:ss

DateFormat类中的常用方法

  • public String format(Date date):将Date对象格式化为字符串。

  • public Date parse(String source):将字符串解析为Date对象。

日期格式化对象中指定的日期要和解析的字符串日期格式一致,否则会报解析异常ParseException

日期类练习

需求

  • 键盘输入一个字符串类型的出生日期时间,打印你来到世界多少天?

分析

- 键盘录入出生日期时间
- 获取当前系统日期时间,并转化为距离标准基准时间的毫秒值
- 出生日期时间转化为Date日期,再获取出生日期时间距离标准基准时间的毫秒值
- 计算2个时间的毫秒值差,换算成天数,打印输出

实现

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) throws ParseException {
        //- 键盘录入出生日期时间
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的出生日期,格式为yyyy-MM-dd:");
        String birthday = sc.nextLine();

        //- 获取当前系统日期时间,并转化为距离标准基准时间的毫秒值
        long nowTime = new Date().getTime();

        //- 出生日期时间转化为Date日期,再获取出生日期时间距离标准基准时间的毫秒值
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date birthdayDate = sdf.parse(birthday);
        long birthdayTime = birthdayDate.getTime();

        //- 计算2个时间的毫秒值差,换算成天数,打印输出
        System.out.println("来到世界:" + (nowTime - birthdayTime) / 1000 / 60 / 60 / 24 + "天");
    }
}

Calendar类

  • public static Calendar getInstanse();

Calendar类的常用方法

  • public int get(int field) 获取某个字段的值。

  • public void set(int field,int value) 设置某个字段的值

  • public void add(int field,int amount) 为某个字段增加/减少指定的值

  • void setTime(Date date) 修改当前日历对象表示的时间。

  • public boolean after(Object when)判断当前日历对象是否在指定的日历对象之后

  • public boolean before(Object when) 判断当前日历对象是否在指定的日历对象之前

Math类

  • Math类的概述

    • 概述: java.lang.Math(类): Math包含执行基本数字运算的方法的工具类。

    • 特点:

      • Math类构造方法被私有修饰,不能创建对象。

      • 操作的时候,都是通过Math类名直接调用该类的静态方法即可。

  • Math类的常用方法

    • public static int abs(int a) 获取参数a的绝对值

    • public static double ceil(double a) 向上取整 (得到大于参数的最小整数)

    • public static double floor(double a) 向下取整(得到小于参数的最大整数)

    • public static double pow(double a, double b) 获取a的b次幂

    • public static long round(double a) 四舍五入取整

    • public static int max(int a, int b) 返回两个 int 值中较大的一个

    • public static int min(int a, int b) 返回两个 int 值中较小的一个

System类

  • System类的概述

    • 概述: java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。

    • 特点:

      • System类构造方法被私有修饰,不能创建对象

      • 直接通过System类名调用该类的静态方法

  • System类的常用方法

    • public static void exit(int status)终止当前运行的Java虚拟机,非零表示异常终止

    • public static long currentTimeMillis() 返回当前时间距离标准基准时间的毫秒值;

BigInteger类

  • BigInteger类的概述

    • 概述: java.math.BigInteger 表示一个超大的整数

  • BigInteger类的构造方法

    • public BigInteger(String value); 根据字符串内容创建一个超大的整数对象

    • 注意: 字符串参数一定要传整数的字符串

  • BigInteger类成员方法

    • public BigInteger add(BigInteger value) 加法运算

    • public BigInteger subtract(BigInteger value) 减法运算

    • public BigInteger multiply(BigInteger value) 乘法运算

    • public BigInteger divide(BigInteger value) 除法运算

BigDecimal类

  • 概述: java.math.BigDecimal类,表示一个超大的小数,并且可以解决小数运算的精度问题

  • 小数运算精度问题演示:

BigDecimal类构造方法

  • BigDecimal(double val) 将double类型的数据封装为BigDecimal对象,不推荐使用,因为使用这个依然还是有精度问题

  • BigDecimal(String val) 将 BigDecimal 的字符串表示形式转换为 BigDecimal

BigDecimal类常用方法

  • public BigDecimal add(BigDecimal value) 加法运算

  • public BigDecimal subtract(BigDecimal value) 减法运算

  • public BigDecimal multiply(BigDecimal value) 乘法运算

  • public BigDecimal divide(BigDecimal value) 除法运算

Arrays类

  • Arrays类概述

    • java.util.Arrays类:该类包含用于操作数组的各种静态方法(如排序和搜索)。

  • Arrays类常用方法

    • public static void sort(int[] a):按照数字顺序排列指定的数组 升序

    • public static String toString(int[] a):返回指定数组的内容的字符串表示形式

包装类

  • 构造方法

    • public Integer(int value) 根据 int 值创建 Integer 对象(过时)

    • public Integer(String s) 根据 String 值创建 Integer 对象(过时)

  • 静态方法

    • public static Integer valueOf(int i) 返回表示指定的 int 值的 Integer 实例

    • public static Integer valueOf(String s) 返回保存指定String值的 Integer 对象

自动装箱和自动拆箱

  • 自动装箱: 基本类型自动转换为对应的包装类类型---->直接把基本类型的值赋值给对应的包装类类型变量

  • 自动拆箱: 包装类类型自动转换为对应的基本类型---->直接把包装类的对象赋值给对应的基本类型的变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值