Java常用API的常用方法及说明

API是Java帮我们写好的各种类,这些API里面有很多方法,我们可以通过API帮助文档查阅

1.Math

   1.帮助我们进行数学计算的工具

   2.里面的方法都是静态的

Math类的常用方法
方法名说明
public static int abs(int a)  获取参数绝对值
public static double ceil(double a)  向上取整
public static double floor(double a)向下取整
public static int round(float a)四舍五入
public static int max(int a, int b) 获取两个int值中的较大值
public static double pow(double a, double b)  返回a的b次幂的值
public static double random()    返回值为double的随机值,范围[0.0, 1

2.System 

1. System:也是一个工具类,提供了一些与系统相关的方法
2.时间原点:1970年1月1日 0:0:0,我国在东八区,有8小时时差。
3.1秒= 1000 毫秒
4.常见方法如下:

5. exit:停止虚拟机
6. currentTimeMillis:获取当前时间的毫秒值
7. arraycopy:拷贝数组

System的常用方法
方法名 说明
public static void exit(int status)终止当前运行的 Java 虚拟机
public static long currentTimeMillis()返回当前系统的时间毫秒值形式
public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数)数组拷贝

3.Runtime

1.Runtime对象的创建 Runtime r=Runtime.getRuntime();

Runtime类的常用方法
方法名说明
public static Runtime getRuntime()当前系统的运行环境对象
public void  exit(int status)停止虚拟机
public int availableProcessors()获得CPU的线程数
public long maxMemorv()JVM能从系统中获取总内存大小(单位byte)
public long totalMemory()JVM已经从系统中获取总内存大小(单位byte)
public long freeMemory()JVM剩余内存大小(单位byte)
public Process exec(String command)运行cmd命令

4.Object

1.Object是Java中的顶级父类。所有的类都直接或间接的继承于Object类。
2.Object类中的方法可以被所有子类访问,所以我们要学习Object类和其中的方法。

Object类的常用方法
方法名说明
public String tostring()返回对象的字符串表示形式
public boolean equals(Object obj)比较两个对象是否相等
protected Object clone(int a)对象克隆

 toString:默认情况下,因为bject类中的tostring万法返回的是地址值,如果我们打印一个对象,想要看到属性值的话,那么就重写toString方法就可以了。日在重写的方法中,把对象的属性值进行拼接。

equals:默认比较的是地址值,如果重写equals就可以比较属性值。

equals:调用equals方法的调用者要看自己类中的有没有equals方法,没有就只能继承父类Object的euuals方法。

package com.itheima.ae4objectdemo;
public class ObjectDemo{
public static void main(String[] args){
String s="abc";
StringBuilder sb = new StringBuilder("abc");
System.out.println(s.equals(sb));// false
//因为equals方法是被s调用的,而s是字符串
//所以equals要看String类中的
//字符串中的equals方法,先判断参数是否为字符串
//如果是字符串,再比较内部的属性
//但是如果参数不是字符串,直接返回farse
System.out.println(sb.equals(s));// false
//因为equals方法是被sb调用的,而sb是StringBuilder
//所以这里的equals方法要看StringBuilder中的equals方法
//那么在StringBuilder当中,没有重写equals方法
//使用的是Object中的
//在Object当中默认是使用==号比较两个对象的地址值
//而这里的s和sb记录的地址值是不一样的,所以结果返回false
}
}

.克隆对象
细节:
1方法在底层会帮我们创建一个对象,并把原对象中的数据拷贝过去。
2书写细节:
重写Object中的clone方法
让javabean类实现Cloneable接口创建原对象并调用clone就可以了。

5.Objects

Objects的成员方法
方法名说明
public static boolean equals(Object a, object b)先做非空判断,比较两个对象
public static boolean isNull(Object obj)判断对象是否为null,为nul1返回true,反之
public static boolean nonNull(Object obj)判断对象是否为null, 跟isNul1的结果相反

           1.Objects是一个对象工具类,提供了一些操作对象的方法
           2. equals(对象1,对象2):先做非空判断,比较两个对象
           3.isNull(对象):判断对象是否为空
           4. nonNull(对象):判断对象是否不是空

 6.BigInteger构造方法

BigInteger构造方法
方法名说明
public BigInteger(int num, Random rnd)获取随机大整数,范围:[e ~ 2的num次方-1]
public BigInteger(String val)获取指定的大整数
public BigInteger(String val, int radix)获取指定进制的大整数
public static BigInteger valueof(long val)静态方法获取BigInteger的对象,内部有优化

BigInteger构造方法小结
1.如果BigInteger表示的数字没有超出long的范围,可以用静态方法获取。2.如果BigInteger表示的超出long的范围,可以用构造方法获取。3. 对象一旦创建,BigInteger内部记录的值不能发生改变。4.只要进行计算都会产生一个新的BigInteger对象

Biginteger的常见方法

Biginiteger的常见方法
方法名说明
public BigInteger add(BigInteger val)加法
public BigInteger subtract(BigInteger val)减法        Ma
public BigInteger multiply(BigInteger val)乘法
public BigInteger divide(BigInteger val)除法,获取商
 public BigInteger[] divideAndRemainder(BigInteger val)除法, 获取商和余数
public boolean equals(Object x)比较是否相同
public I BigInteger pow(int exponent)次幂
public BigInteger max/min(BigInteger val)返回较大值/较小值
public int intValue(BigInteger val)转为int类型整数, 超出范围数据有误

总结

1. BigInteger表示一个大整数。
2.如何获取BigInteger的对象?
BigInteger b1 = Biginteger.valueOf(0.1);BigInteger b1 = new BigInteger("整数”);
3.常见操作
加:add 减:subtract
乘:multiply 除:divide、 divideAndRemainder
比较:equals、max、min
次幂:pow
转成整数:intValue、 longValue

7.BigDecima的作用

1.用于小数的精确计算

2.用来表示很大的小数

BigDecima创建对象的两种方法

通过传递字符串表示的小树来创建对象:BigDecimal bd3=new=BigDecimal(val:"0.01")

通过静态放方法获取对象:BigDecimal bd4=new BigDecimal.valueof(10);

细节:
1.如果要表示的数字不大,没有超出double的取值范围,建议使用静态方法
2.如果要表示的数字比较大,超出了double的取值范围,建议使用构造方法
3.如果我们传递的是8~18之间的整数,包含e,包含10,那么方法会返回已经创建好的对象,不会重新new

BigDecima类的常用方法
方法名说明
public static BigDecimal valueof(double val)获取对象
public BigDecimal add(BigDecimal val)加法
public BigDecimal subtract(BigDecimal val)减法
public BigDecimal multiply(BigDecimal val)乘法
public BigDecimal divide(BigDecimal val)除法
public BigDecimal divide(BigDecimal val,精确几位,舍入模式)除法

1. BigDecimal的作用是什么?
表示较大的小数和解决小数运算精度失真问题。
2. BigDecimal的对象如何获取?
BigDecimal bd1 = new BigDecimal(”较大的小数”);BigDecimal bd2 = BigDecimal.valueOf(0.1);
3.常见操作
加:add
减:subtract
乘:multiply
除:divide(四舍五入:RoundingMode.HALF_UP)

8.正则表达式

正则表达式的作用
作用一:
校验字符串是否满足规则

字符类(只能匹配一个字符)
[abc]只能是a, b,或c
[^abc]  除了a, b, c之外的任何字符
[a-ZA-Z] a到zA到Z,包括(范围)
[a-d[m-p]]a到d,或m到p
[a-z&&[def]] d,e,或f(交集)
[a-z&&[^bc]] a到z,除了b和c(等同于[ad-2])
[a-z&&[^m-pl] a到z,除了m到p(等同于[a-[g-z])
预定义字符(只能匹配一个字符)
.任何字符
\d一个数字:[0-9]
\D非数字:[^0-9]
\s一个空白字符:[\t\n\x0B\f\r]
\S非空白字符:[^\s]
\w[a-ZA-Z 0-91英文、数字、下划线
\W[^\w]一个非单词字符
数量词
X?x,一次或0次
x*X,零次或多次
X+x,一次或多次
X{n}X,正好n次
X{n,}X,至少n次
X{n,m}X,至少n但不超过m次
正则表达式小结
符号含义举例
[]里面的内容出现一次0-9] [a-zA-Z0-9]
()分组a(bc)+
^取反[^abc]
&&交集,不能写单个的&[a-z&&m-p]
|写在方括号外面表示并集[a-zA-Z0-9] x|X
.任意字符\n回车符号不匹配
\转义字符\\d
\\d0-9\\d+
\\D非0-9\\D+
\\s空白字符\t\n\x0B\f\r
\\S非空白字符[^\s]
\\w单词字符[a-zA-Z_0-9]
\\W非单词字符[^\w]
?0次或1次\\d?
*0次或多次\\d*
+1次或多次\\d+
{}具体次数a{7}
(?i)忽略后面字符的大小写(?i)abc
a((?i)b)c只忽略b的大小写a((?i)b)c

           作用二:
           在一段文本中查找满足要求的内容

    本地爬虫: 爬取本地信息中符合要求的信息

package lianxi;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class text1 {
    public static void main(String[] args) {
        String str = "Java自从95年问世以来,经历了很多版木,月前企业中用的最多的是Java8和Java11, "+
"因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久了ava17也会逐渐登上历史舞台";
        Pattern p  =Pattern.compile("Java\\d{0,2}");
        Matcher ss = p.matcher(str);
        while (ss.find()){
            String s=ss.group();
            System.out.println(s);
        }

    }
}

正则表达式在字符串方法中的使用
方法名说明
public String[] matches(String regex)判断字符串是否满足正则表达式的规则
public String replaceAll(String regex, string newstr)按照正则表达式的规则进行替换
public String[] split(String regex)按照正则表达式的规则切割字符串

代码演示

package lianxi;

public class text2 {
    public static void main(String[] args) {
      /*  有一段字符串:小诗诗dqwefqwfqwfwg12312小丹丹dqwefqwfqwfwq12312小恶恋
        要求1:把字符串中三个姓名之间的字母替换为vs
        要求2:把字符串中的三个姓名切割出来 */
        String s="小诗诗dqwefqwfqwfwq12312小丹丹dqwefqwfqwfwq12312小惠惠";
//        细节:
//        方法在底层跟之前一样也会创建文本解析器的对象
//        然后从头开始去读取字符串中的内容,只要有满足的,那么就用第二个参数去替换。
        String resutl = s.replaceAll("[\\w&&[^_]]+","vs");
        System.out.println(resutl);
        
        //字符切割
        String[] arr = s.split(  "[\\w&&[^_]]+");
        for (int i= 0; i<arr.length;i++){
            System.out.println(arr[i]);
        }
    }
}

捕获分组

后续还需要使用本组的数据。

正则内部使用:\\组号
正则外部使用:$组号

非捕获分组:分组后不需要再用本组数据,仅仅是把数据括起来

符号 含义举例
(?:正则)获取所有Java(?:8|11|17)
(?=正则)获取前面部分Java(?=8|11|17)
(?!正则)获取不是指定内容的前面部分Java(?!8|11|17)
package lianxi;

public class text3 {
    public static void main(String[] args) {
//       需求1:判断一个字符串的开始字符和結束字符是否一致?只考虑一个字符
//        举例:a123a b456b 17891 &abc& a123b(false)
//         组号:表示把第X组的内容再出来用一次
       String regex1="(.)\\w+\\1";
        System.out.println("a123a".matches(regex1));
        System.out.println("b456b".matches(regex1));
        System.out.println("17891".matches(regex1));
        System.out.println("&abc&".matches(regex1));
        System.out.println("a123b".matches(regex1));
        System.out.println("---------1");
//        需求2:判断一个字符串的开始部分和结束部分是否一致?可以有多个字行
//        举例: abc123abc b456b 123789123 &!@abc&!@ abc123abd(false)
        String regex2 ="(.+).+\\1";
        System.out.println("abc123abc".matches(regex2));
        System.out.println("b456b".matches(regex2));
        System.out.println("123789123".matches(regex2));
        System.out.println("&!@abc&I@".matches(regex2));
        System.out.println("abc123abd".matches(regex2));
//        System.out.println("------ ------------------");
//        需求3:判断一个字符串的开始部分和结束部分儿否一致?开始部分内部每个字符也需要一致
//       举例: aaa123aaa bbb456bbb 111789111 &&abc&&
//      (.):把首字母看做一组
//          \\2把首字母拿出来再次使用
//       *:作用于\2,表示后面重复的内容出现0次或多次
        String regex3="((.)\\2*)\\w+\\1";
        System.out.println("aaa123aaa".matches(regex3));
        System.out.println("bbb456bbb".matches(regex3));
        System.out.println("111789111".matches(regex3));
        System.out.println("&&abc&&".matches(regex3));
        System.out.println("aaa123aab".matches(regex3));
    }
}

分组去重复

package lianxi;

public class text4 {
    public static void main(String[] args) {
        /*需求:
将字符串:我要学学编编编编程程程程程程
替换为:我要学编程*/
        String str = "我要学学编编编编程程程程程程";
//           需求:把重复的内容 替换为 单个的
//           学学 学
//           编编编编 编
//           程程程程程程 程
//           (.)表示把重复内容的第一个字符看做一组
//            \\1表示第一字符再次出现
//           + 至少一次
//         $1表示把正则表达式中第一组的内容,再拿出来用
                String ss=str.replaceAll("(.)\\1+","$1");
        System.out.println(ss);
    }
}

1.正则表达式中分组有两种:
捕获分组、非捕获分组
2.捕获分组(默认):
可以获取每组中的内容反复使用。3.组号的特点:
从1开始,连续不间断
以左括号为基准,最左边的是第一组
4.非捕获分组:
分组之后不需要再用本组数据,仅仅把数据括起来,不占组号。
(?:)(?=)(?!)都是非捕获分组

9.Date类

1、如何创建日期对象?
Date date = new Date();
Date date = new Date(指定毫秒值);
2、如何修改时间对象中的毫秒值
setTime(毫秒值);
3、如何获取时间对象中的毫秒值
getTime();

SimpleDateFormat 类

1. SimpleDateFormat的两个作用
格式化
解析
2.如何指定格式
yyyy年MM月dd日 HH:mm:ss

构造方法说明
public SimpleDateFormat()构造一个SimpleDateFormat,使用默认格式
public SimpleDateFormat(String pattern)构造一个SimpleDateFormat,使用指定的格式
常用方法说明
public final String format(Date date)格式化(日期对象->字符串)
public Date parse(String source)解析(字符串 ->日期对象)

格式化日期

package lianxi;

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

public class text6 {
    public static void main(String[] args) {
        SimpleDateFormat d=new SimpleDateFormat("yyyy年mm月dd日 HH时mm分ss秒 EE");
        Date dd=new Date();
        String format = d.format(dd);
        System.out.println(format);
    }
}

解析字符串日期

package lianxi;

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

public class text6 {
    public static void main(String[] args) throws ParseException {
        String str="2023-11-11 11:11:11";
        SimpleDateFormat simp=new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
        Date parse = simp.parse(str);
        System.out.println(parse);

Calender类
Calendar代表了系统当前时间的日历对象,可以单独修改、获取时间中的年,月,日细节:Calendar是一个抽象类,不能直接创建对象。
获取Calendar日历类对象的方法
方法名                                                                    说明
public static Calendar getInstance()            获取当前时间的日历对象

Calendar常用方法
方法名说明
public final Date getTime()获取日期对象
public final setTime(Date date)给日历设置日期对象
public long getTimeInMillis()拿到时间毫秒值
public void setTimeInMillis(long millis) 给日历设置时间毫秒值
public int get(int field)取日历中的某个字段信息
public void set(int field, int value)修改日历的某个字段信息
public void add(int field, int amount)为某个字段增加/减少指定的值

小结:

1.Calendar表示什么?
表示一个时间的日历对象
2.如何获取对象
通过getlnstance方法获取对象

3.常见方法:
setXxx:修改
getXxx:获取
add:在原有的基础上进行增加或者减少4.细节点:
日历类中月份的范围:0~11
日历类中星期的特点:星期日是一周中的第一天

JDK八的更新后的时间类

Zoneld时区

方法名说明
static Set<String> getAvailablezoneIds()获取Java中支持的所有时区
static ZoneId systemDefault()获取系统默认时区
static ZoneId of(String zoneId)获取一个指定时区

Instant时间截

方法名说明
static Instant now()获取当前时间的Instant对象(标准时间)
static Instant ofXxxx(long epochMilli)根据(秒/毫秒/纳秒)获取Instant对象
ZonedDateTime atZone(ZoneId zone)指定时区
boolean isxxx(Instant otherInstant)判断系列的方法
Instant minusxxx(long millisTosubtract)减少时间系列的方法
Instant plusxxx(long millisToSubtract)增加时间系列的方法

ZoneDateTime带时区的时间

方法名说明
static ZonedDateTime now()获取当前时间的ZonedDateTime对象
static ZonedDateTime ofxxxx(。。)获取指定时间的ZonedDateTime对象
ZonedDateTime withxxx(时间)修改时间系列的方法
ZonedDateTime minusxxx(时间)减少时间系列的方法
ZonedDateTime plusxxx(时间)增加时间系列的方法

DateTimeFormatter用于时间的格式化和解析

方法名说明
static DateTimeFormatter ofPattern(格式)获取格式对象
String format(时间对象)按照指定方式格式化
package lianxi;

import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class text8 {
    public static void main(String[] args) {
        ZonedDateTime z= Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
        DateTimeFormatter sd=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss EE a");
        String ww = z.format(sd);
        System.out.println(ww);
    }
}

Calendar日历类

LocalDate:年、月、日
LocalTime:时、分、秒
LocalDateTime:年、月、日  时、分、秒

LocalDate、LocalTime、LocalDateTime
方法名说明
static Xxx now()获取当前时间的对象
static Xxx of(。。。)获取指定时间的对象
get开头的方法获取日历中的年、月、日、时、分、秒等信息
isBefore, isAfter比较两个LocalDate
with开头的修改时间系列的方法
minus开头的减少时间系列的方法
plus开头的增加时间系列的方法

LocalDateTime可以转换为LocalDate或LocalTime

方法名说明
public LocalDate toLocalDate()LocalDateTime转换成一个LocalDate对象
public LocalTime toLocalTime()LocalDateTime转换成一个LocalTime对象

工具类

Duration、Period、ChronoUnit
Duration:用于计算两个“时间”间隔(秒,纳秒)
Period:用于计算两个“日期”间隔(年、月、日)
ChronoUnit: 用于计算两个“日期”间隔

10.包装类

1.什么是包装类?
基本数据类型对应的对象
2.JDK5以后对包装类新增了什么特性?
自动装箱、自动拆箱
3.我们以后如何获取包装类对象?
不需要new,不需要调用方法,直接赋值即可
Integer i = 10;
Integer i1 = 10;Integer i2 = 10;
Integer i3 = i1 + i2;

Integer成员方法
方法名说明
public static String toBinaryString(int i)得到二进制
public static String toOctalString(int i)得到八进制
public static String toHexString(int i)得到十六进制
public static int parselnt(String s)将字符串类型的整数转成int类型的整数
package lianxi;

public class text9 {
    public static void main(String[] args) {
        String s = Integer.toBinaryString(100);
        System.out.println(s);
        String s1 = Integer.toOctalString(100);
        String s2 = Integer.toHexString(100);
        System.out.println(s1);
        System.out.println(s2);
//        将字符串类型的整数转成int类型的整数
//        强类型语言:每种数据在java中都有各自的数掘类型
//        在计算的时候,如果不是同一种数据类型,是无法直接计算的。
        int i = Integer.parseInt("123");
        System.out.println(i);
        System.out.println(i + 1);//124
//        细节1:
//        在类型转换的时候,括号中的参数只能是数字不能是其他,否则代码会报错
//        细节2:
//        8种包装类当中,除了Character都有对应的parsexxx的方法,进行类型转换
        String str = "true";
        boolean b=Boolean.parseBoolean(str);
        System.out.println(b);

    }
}

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值