Java常用API与异常

- 什么是API

  ​    API (Application Programming Interface) :应用程序编程接口

- java中的API

  ​    指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。

一、String类

(一)、概述

  • String类表示的字符串。java程序中的所有字符串,如 "abc",实现这个类的实例。

    字符串是常量,它们的值不能被创建后改变。支持可变字符串字符串缓冲区。因为字符串对象是不可改变的,所以它们可以被共享。

(二)、字符串对象是不可改变的原因

  • 如上String类底层是使用final修饰的字节数组,JDK9之前使用的是char[];一个char等于两个byte所以这样更节省内存空间;

(三)、为什么设计成不可变的

  • 线程安全,因为多个线程无法修改它,这样就不需要额外的同步机制,避免了线程安全问题

  • 提高性能:由于字符串不可变,可以对字符串进行缓存和重用,避免频繁的创建新的字符串,从而节省内存,提高效率。

  • (四)、不同方式创建对象的区别

s创建了两个对象,首先在字符串常量池中创建"abc",然后再在堆空间中创建一个对象,对象存放"abc"在常量池中的地址引用,s指向堆空间中的地址;s2在字符串常量池中创建了一个对象;s3创建了创建了6个对象,cc和vv首先被保存到字符串常量池,创建了两个对象,然后分别在堆空间new了两个对象,之后做字符串拼接操作,创建了一个StringBuilder对象来拼接字符串,最后转为一个String对象,并将此String对象的地址指向引s3;最后创建了六个对象;s4由于常量优化机制,在编译过程中会进行优化,被看成"adfghh",因此创建了一个对象;s5创建了3个对象,首先在字符串常量池中创建"bnm",然后就是字符串拼接操作,创建StringBuilder对象,返回一个String对象,并将此对象的地址指向引用s5。

二、异常

异常就是程序出现了不正常的情况

(一)、异常体系

(二)、编译时异常和运行时异常的区别

  • 编译时异常

    • 都是Exception类及其子类

    • 必须显示处理,否则程序就会发生错误,无法通过编译

  • 运行时异常

    • 都是RuntimeException类及其子类

    • 无需显示处理,也可以和编译时异常一样处理

 (三)、自定义异常(应用)

  • 自定义异常概述:当Java中提供的异常不能满足我们的需求时,我们可以自定义异常

  • 实现步骤:定义异常类;写继承关系;提供空参构造;提供带参构造;抛出异常;捕获异常

(四) throw与throws的区别

throw是制造一个异常,throws是声明一个异常

 三、Period

  • 实现要求:这个类是不可变的和线程安全的。

    从以下版本开始:

    一点八

(一)、常用方法 

四、Duration

  • 实现要求:

    这个类是不可变的和线程安全的。

    从以下版本开始:

    一点八

(一)、常用方法

static Durationbetween(Temporal startInclusive, Temporal endExclusive)

获得 Duration表示两个时间对象之间的时间。

  • longtoHours()

    获取在此期间的几个小时数。

    longtoMillis()

    将此持续时间转换为毫秒内的总长度。

    longtoMinutes()

    获取在此期间的分钟数。

    longtoNanos()

    将这个时间的总长度来表示为一个 long

    StringtoString()

    本期使用ISO-8601秒表示的字符串表示,如 PT8H6M12.345S

    DurationwithNanos(int nanoOfSecond)

    返回此持续时间的一个副本与指定的第二个。

    DurationwithSeconds(long seconds)

    用指定的秒数返回此持续时间的一个副本。

五、Date类

  • 计算机中时间原点:1970年1月1日 00:00:00

  • 时间换算单位:1秒 = 1000毫秒

  • Date类概述:Date 代表了一个特定的时间,精确到毫秒

  • Date类构造方法

    方法名说明
    public Date()分配一个 Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
    public Date(long date)分配一个 Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数

六、SimpleDateFormat类  

  • SimpleDateFormat类概述

    SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。

    我们重点学习日期格式化和解析

  • SimpleDateFormat类构造方法

    方法名说明
    public SimpleDateFormat()构造一个SimpleDateFormat,使用默认模式和日期格式
    public SimpleDateFormat(String pattern)构造一个SimpleDateFormat使用给定的模式和默认的日期格式
  • SimpleDateFormat类的常用方法

    • 格式化(从Date到String)

      • public final String format(Date date):将日期格式化成日期/时间字符串

    • 解析(从String到Date)

      • public Date parse(String source):从给定字符串的开始解析文本以生成日期

七、LocalDateTime  

方法说明

方法名说明
public static LocalDateTime now()获取当前系统时间
public static LocalDateTime of (年, 月 , 日, 时, 分, 秒)使用指定年月日和时分秒初始化一个LocalDateTime对象
方法名说明
public LocalDate toLocalDate ()转换成为一个LocalDate对象
public LocalTime toLocalTime ()转换成为一个LocalTime对象
方法名说明
public String format (指定格式)把一个LocalDateTime格式化成为一个字符串
public LocalDateTime parse (准备解析的字符串, 解析格式)把一个日期字符串解析成为一个LocalDateTime对象
public static DateTimeFormatter ofPattern(String pattern)使用指定的日期模板获取一个日期格式化器DateTimeFormatter对象
方法名说明
public LocalDateTime plusYears (long years)添加或者减去年
public LocalDateTime plusMonths(long months)添加或者减去月
public LocalDateTime plusDays(long days)添加或者减去日
public LocalDateTime plusHours(long hours)添加或者减去时
public LocalDateTime plusMinutes(long minutes)添加或者减去分
public LocalDateTime plusSeconds(long seconds)添加或者减去秒
public LocalDateTime plusWeeks(long weeks)添加或者减去周
方法名说明
public LocalDateTime minusYears (long years)减去或者添加年
public LocalDateTime minusMonths(long months)减去或者添加月
public LocalDateTime minusDays(long days)减去或者添加日
public LocalDateTime minusHours(long hours)减去或者添加时
public LocalDateTime minusMinutes(long minutes)减去或者添加分
public LocalDateTime minusSeconds(long seconds)减去或者添加秒
public LocalDateTime minusWeeks(long weeks)减去或者添加周
方法名说明
public LocalDateTime withYear(int year)直接修改年
public LocalDateTime withMonth(int month)直接修改月
public LocalDateTime withDayOfMonth(int dayofmonth)直接修改日期(一个月中的第几天)
public LocalDateTime withDayOfYear(int dayOfYear)直接修改日期(一年中的第几天)
public LocalDateTime withHour(int hour)直接修改小时
public LocalDateTime withMinute(int minute)直接修改分钟
public LocalDateTime withSecond(int second)直接修改秒

 八、Math

  • Math类概述

    • Math 包含执行基本数字运算的方法

  • 2、Math中方法的调用方式

    • Math类中无构造方法,但内部的方法都是静态的,则可以通过 类名.进行调用

  • 3、Math类的常用方法

    方法名 方法名说明
    public static int abs(int a)返回参数的绝对值
    public static double ceil(double a)返回大于或等于参数的最小double值,等于一个整数
    public static double floor(double a)返回小于或等于参数的最大double值,等于一个整数
    public static int round(float a)按照四舍五入返回最接近参数的int
    public static int max(int a,int b)返回两个int值中的较大值
    public static int min(int a,int b)返回两个int值中的较小值
    public static double pow (double a,double b)返回a的b次幂的值
    public static double random()返回值为double的正值,[0.0,1.0)

九、System

System类的常用方法

方法名说明
public static void exit(int status)终止当前运行的 Java 虚拟机,非零表示异常终止
public static long currentTimeMillis()返回当前时间(以毫秒为单位)
  • 29
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值