Java SE阶段部分API(一)

API

stringbuilder/stringbuffer

作用:可变的字符串对象,提供了操作字符串的一些方法,拼接时效率会更高,会使用该对象(拼接时不会创建新的字符串对象)

创建对象;

//public StringBuilder() 创建一个空白的可变的字符串对象,不包含任何内容 //public StringBuilder(String str) 创建一个指定字符串内容的可变字符串对象

常见方法;

//public StringBuilder append(任意类型) 添加数据并返回StringBuilder对象本身 //public StringBuilder reverse() 将对象的内容反转 //public int length() 返回对象内容长度 //public String toString() 通过toString()就可以实现把StringBuilder转换为String

Math

作用:数学类,工具类,提供了一些数学运算的方法

常见方法:

// 1、public static int abs(int a):取绝对值(拿到的结果一定是正数) // 2、public static double ceil(double a): 向上取整 // 3、public static double floor(double a): 向下取整 // 4、public static long round(double a):四舍五入 // 5、public static int max(int a, int b):取较大值 // public static int min(int a, int b):取较小值 // 6、 public static double pow(double a, double b):取次方 // 7、public static double random(): 取随机数 [0.0 , 1.0) (包前不包后)

System

作用:系统类,工具类,提供 了操作当前系统的方法

常见方法:

// 1、public static void exit(int status): 终止当前运行的Java虚拟机。 //该参数用作状态代码; 按照惯例,非零状态代码表示异常终止。

// 2、public static long currentTimeMillis(): 获取当前系统的时间 //返回的是long类型的时间毫秒值:指的是从1970-1-1 0:0:0开始走到此刻的总的毫秒值,1s = 1000ms

BigDecimal

作用:大小数类,解决浮点型运算时出现的精度缺失问题

创建对象:

// 1、把浮点型数据封装成BigDecimal对象,再来参与运算。 // a、public BigDecimal(double val) 得到的BigDecimal对象是无法精确计算浮点型数据的。 注意:不推荐使用这个, // b、public BigDecimal(String val) 得到的BigDecimal对象是可以精确计算浮点型数据的。 推荐使用。

常见方法;

// 2、public BigDecimal add(BigDecimal augend): 加法 // 3、public BigDecimal subtract(BigDecimal augend): 减法 // 4、public BigDecimal multiply(BigDecimal augend): 乘法 // 5、public BigDecimal divide(BigDecimal b): 除法 //注意:如果除不尽,就会报错ArithmeticException // 6、public BigDecimal divide(另一个BigDecimal对象,精确几位,舍入模式:RoundingMode.HALF_UP) : 除法,可以设置精确几位。 // 7、public double doubleValue() : 把BigDecimal对象又转换成double类型的数据。

jdk1.8之前的时间日期类(不推荐)

jdk1.8开始的时间日期类(推荐)

LocalDate:

作用:代表年月日星期

LocalTime:

作用:代表时分秒纳秒

LocalDateTime:

作用:代表年月日时分秒纳秒

创建对象;

// 01、获取本地日期和时间对象 now()。 // 02、获取指定日期和时间的LocalDateTime对象:// public static LocalDateTime of(int year, Month month, int dayOfMonth, int hour)

常见方法:

// 1、可以获取日期和时间的全部信息 // getYear getMonthValue getDayOfMonth getDayOfWeek().getValue()获取周几 getHour getMinute getSecond getNano // 2、修改时间信息: // withYear withMonth withDayOfMonth withDayOfYear withHour // withMinute withSecond withNano // 3、加多少: // plusYears plusMonths plusDays plusWeeks plusHours plusMinutes plusSeconds plusNanos // 4、减多少: // minusDays minusYears minusMonths minusWeeks minusHours minusMinutes minusSeconds minusNanos // 6、 判断2个日期、时间对象,是否相等,在前还是在后: equals、isBefore、isAfter // 7、可以把LocalDateTime 转换成 LocalDate和LocalTime // public LocalDate toLocalDate() // public LocalTime toLocalTime() // 8、LocalDate和LocalTime 转换成 LocalDateTime // public static LocalDateTime of(LocalDate date, LocalTime time)

Zoneld

作用:代表时区对象

创建对象;

// public static ZoneId of(String zoneId) : 把某个时区id封装成ZoneId对象。 America/New_York

常见方法:

// public static Set<String> getAvailableZoneIds(): 获取Java支持的全部时区Id // public static ZoneId systemDefault(): 获取系统默认的时区

ZonedDateTime

作用:代表时区时间对象

创建对象;

// public static ZonedDateTime now(ZoneId zone): 获取某个时区的ZonedDateTime对象。 // public static ZonedDateTime now():获取系统默认时区的ZonedDateTime对象

常见方法:

// getXxx()获取 withXxx(时间)修改 minusXxx(时间)减少 plusXxx(时间)增加

Instant

作用:代表时间戳对象

创建对象:

// 1、public static Instant now(); 创建Instant的不可变对象,获取此刻时间戳信息,世界标准时间

常见方法:

// 2、public long getEpochSecond();获取从时间原点开始记录的总秒数 // 3、public int getNano(); 获取当前时间戳对象中不够1秒的纳秒数

DateTimeFormatter

作用:时间格式化解析类

创建对象:

//public static DateTimeFormatter ofPattern(时间格式) 获取格式化器对象

常见方法:

//public String format(时间对象) 格式化时间

LocalDateTime类中的方法://public static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter) 解析时间

Period

作用:代表年月日时间间隔对象

创建对象:

// 1、public static Period between(LocalDate start, LocalDate end); 创建Period对象,封装两个日期对象。

常见方法:

// 2、通过period对象获取两个日期对象相差的信息。public int getYears(); public int getMonths(); public int getDays();

Duration

作用:代表时分秒时间间隔对象

创建对象:

// 1、public static Duration between(开始时间对象1,截止时间对象2); 得到Duration对象

常见方法:

// 2、获取两个时间对象间隔的信息 toxxx()

Arrays

作用:操作数组的工具类

常见方法:

// 1、public static String toString(类型[] arr): 返回数组的内容

// 2、public static 类型[] copyOfRange(类型[] arr, 起始索引(包含), 结束索引(不包含)) :拷贝数组 // 3、public static 类型[] copyOf(类型[] arr, int newLength):拷贝数组,可以指定新数组的长度。 // 4、public static void sort(类型[] arr):对数组进行排序(默认是升序排序)

如果要给自定义的对象数组进行排序:

指定排序规则

排序规则:根据重写方法的返回结果,决定即将排序的元素的存储位置

返回结果为正整数,即将排序的元素放在已经排好序的元素的右边

返回结果为复数,即将排序的元素放在已经排好序的元素的左边

返回结果为0,即将排序的元素按顺序依次放在已经存好元素的后面

(1)自然排序:1.让被排序的类实现comparable<被排序的类>接口 2.重写compareTo方法,在该方法中设置排序规则 this即将排序的元素 o已经排好序的元素

(2)比较器排序:1.创建comparator<被排序的类>比较器匿名内部类对象,将对象作为参数传递给sort方法的第二实参位置 2.重写compare方法,在该方法中设置排序规则 o1即将排序的元素,o2已经排好序的元素

compareTo比较字符串

Lambda表达式

作用:简化函数式接口的匿名内部类的写法

函数时接口:有且仅有以一个抽象方法的接口,该接口一般是被@Funcationallnterface注解检查

格式:

(被重写方法的参数列表)-> {被,重写方法的方法体代码}

省略规则:

1.参数类型可以省略

2.只有一个形参,()也可以省略

3.方法体代码只有一行,{}可以省略,分号可以省略,return必须省略

方法引用

作用:简化Lambda表达式的写法

分类:

静态方法引用:

场景:1. lambda表达式中只是在调用一个静态方法

           2.前后参数一致

格式 类名::方法名

实例方法引用:

场景:1.lambda表达式中只是在调用一个实例方法

           2.前后参数一致

格式 对象名::方法名

特定实例方法引用:

场景:1.Lambda表达式中只有一个实例方法

           2.第一个参数作为方法的调用者,后面参数作为方法的实参传递

格式: 类型名::方法名

构造器引用:

场景:1.如果lambda表达式只是在创建对象

            2前后参数一致

格式: 类名::new

算法

概述:解决方法的过程和方法

冒泡排序:让元素两两之间进行对比,将最值放到数组最后

选择排序:每轮选择一个当前元素,使用当前元素和后面的元素--对比,将最值放到当前位置

二分查找:定义最小索引和最大索引,计算中间索引,使用查找元素和中间索引的元素进行对比,如果不相等,重新计算最大,最小,中间索引,再次对比,直到相等

正则表达式

作用:定义一组正则表达式的规则校验一个数组的格式是否合法

异常

概述:程序出现的问题

体系:Throwable Error和Exception

Exception分为RuntimException 运行时异常,程序运行时可能出现的异常

其他异常,编译时异常,编码期间出现的异常

JVM默认处理方案:出现异常后,层层往上抛,最终会抛给JVM去处理,1.打印异常的信息(异常名称,异常描述,异常位置)2.结束虚拟机

两种处理异常方案:

抛出异常:1.throws,在方法上声明异常,告诉调用者该方法可能出现异常,运行时异常可以不用声明,编译时异常必须声明

throw,创建一个异常对象,将其抛给调用者,调用者就必须处理该异常

捕获异常:try{可能出现的异常的代码}catch(捕获异常类型 变量名){真正处理该异常的代码}

手动捕获到异常并处理,异常不会继续层层网上抛

自定义异常:

步骤:1.创建自定义异常类,让其继承Runtime Exception或Exception

2.右键生成两个构造器,无参,只有一个参数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值