JAVA-常用API

Math

abs:获取绝对值

absExact:获取绝对值

ceil:向上取整

floor:向下取整

round:四舍五入

max:获取最大值 minL获取最小值

pow:获取a的b词幂 sqar:开平方根 cbrt:开立方根

random:获取[0.0,1.0)之间的随机数

        //abs获取绝对值
        System.out.println(Math.abs(88));//88
        System.out.println(Math.abs(-88));//88

        //进一法往数轴正方向进一
        System.out.println(Math.ceil(12.34));//13.0
        System.out.println(Math.ceil(12.54));//13.0
        System.out.println(Math.ceil(-12.34));//-12.0
        System.out.println(Math.ceil(-12.54));//-12.0

        //去尾法,往数轴负方向进一
        System.out.println(Math.floor(12.34));//12.0
        System.out.println(Math.floor(12.54));//12.0
        System.out.println(Math.floor(-12.34));//-13.0
        System.out.println(Math.floor(-12.54));//-13.0

        //四舍五入
        System.out.println(Math.round(12.34));//12
        System.out.println(Math.round(12.54));//13
        System.out.println(Math.round(-12.34));//-12
        System.out.println(Math.round(-12.54));//-13

        //第二个参数尽量传大于等于1的正整数
        System.out.println(Math.pow(2,3));//8

System

常见方法

exit:停止虚拟机

//状态码:
        //0:表示当前虚拟机是正常停止
        //非0:表示非正常停止
        System.exit(0);

currentTimeMillis:获取当前时间毫秒值

时间原点:1970年1月1日0:0:0,我国在东八区,有八小时时差

从时间原点算起

System.out.println(System.currentTimeMillis());//返回当前系统的毫秒值形式

arraycopy:拷贝数组

int []arr1={1,2,3,4,5,6,7,8,9};
        int []arr2=new int[9];
        //参数一:从哪个数组中拷贝
        //参数二:从第几个索引开始拷贝
        //参数三:要拷贝到哪个数组中
        //参数四:目的地数组的索引
        //参数五:拷贝的个数
        System.arraycopy(arr1,0,arr2,0,9);

注意:

  1. 如果数据源和目的数组都是基本数据类型,两者类型必须保持一致,否则会报错

  1. 拷贝时超过数组长度也会报错

  1. 如果都是引用数据类型(此时拷贝的是地址),那么子类类型可以赋值给父类类型

Runtime

常用方法

代码实现

 //1.获取Runtime的对象
        Runtime r1 = Runtime.getRuntime();
        //2.exit 停止虚拟机
        //Runtime.getRuntime().exit(0);
        //3.获取cpu的线程
        System.out.println(Runtime.getRuntime().availableProcessors());
        //4.总内存大小,单位byte字节
        System.out.println(Runtime.getRuntime().maxMemory()/1024/1024);
        //5.已获取的总内存大小
        System.out.println(Runtime.getRuntime().totalMemory()/1024/1024);
        //6.剩余内存大小
        System.out.println(Runtime.getRuntime().freeMemory()/1024/1024);
        //7.运行cmd命令
        //shutdown 关机 需要加上参数
        //-s默认一分钟后
        //-s -t :指定时间关机
        //-a:取消关机操作
        //-r:关机并重启
        Runtime.getRuntime().exec("shutdown -s -t 3600");//在3600秒后关机
        Runtime.getRuntime().exec("shutdown -a");//取消

Object和Objects

toString方法

结论:

如果我打印一个对象想看属性值,要重写方法

在重写方法中,把对象的属性值进行拼接

equals方法

结论:

  1. 如果没有重写reuais方法,那么默认使用Object中的方法进行比较,比较地址值

  1. 一般来说会重写方法,重写后比较的就是对象内部的属性值

       String s = "abc";
       StringBuffer sb =new StringBuffer("abc");
        System.out.println(s.equals(sb));//false
        //equals方法是s调用,看String类中的方法
        //先判断是否为字符串,再比较内部属性
        System.out.println(sb.equals(s));//false
        //sb调用,为StringBuffer类,使用的为Object的方法
        //比较地址值

对象克隆clone()

默认浅克隆

不管对象内部的属性是基本数据类型还是引用数据类型,都拷贝

深克隆

基本数据类型拷贝 字符串复用 引用数据类型创建新的()需要重写,或者第三方工具

Objects.equals(对象1,对象2);

        Student s1 = new Sudent();
        Objects.isNull(s1);//判断该对象是不是null,不是返回false
        Objects.nonNull(s1);//与isNull相反

Biglnteger和BigDecimal

Biglnteger

代码实现

        //1.获取一个随机的大整数
        Random r = new Random();
        BigInteger bd1 = new BigInteger(4, r);//[0-15]

        //2.获取一个指定大的整数
        //细节:字符串中必须是整数,否则会报错
        BigInteger bg2 = new BigInteger("99999999999");

        //3.获取指定进制的大整数(字符串中的数字必须为整数)
        BigInteger bg3 = new BigInteger("100",2);
        //100转化为2进制  结果为4 

        //4.静态获取BigInteger对象的方法
        //范围比较小,适用于long类型整数
        //提前把—16,16创建好了
        BigInteger bd5=BigInteger.valueOf(19);

创建对象后,内部的值不能改变

只要进行计算都会产生一个新的BigInteger对象

成员方法

总结

  1. Biglnteger表示一个大的整数

  1. 获取对象 静态方法,构造方法

  1. 常见操作 加减乘除

BigDecimal

构造方法

 //1.通过传递double类型的小数来创建对象
        //可能是不精确的,不推荐使用
        BigInteger bd1=new BigInteger(0.01);

        //2.通过传递字符串来创建
        BigInteger bd2=new BigInteger("0.01");

        //3.通过静态方法获取对象
        BigInteger bd3 =BigInteger.valueOf(10);

        //数字如果不大,未超过double类型建议使用静态 否则用构造方法

总结

  1. 表示较大的小数和解决小数运算精度失真的问题

  1. 获取对象 静态方法,构造方法

  1. 常见操作 加减乘除

除:divide(数字,精确几位,舍入模式)

正则表达式

matches(正则表达式)

爬虫

 String str = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11," +
                "因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久Java17也会逐渐登上历史舞台";
        //1.获取正则表达式的对象
        Pattern p = Pattern.compile("Java\\d{0,2}");
        //2.获取文本匹配器的对象
        //拿着m去读取str,找符合p规则的子串
        Matcher m = p.matcher(str);
        //3.利用循环获取
        while (m.find()) {
            String s = m.group();
            System.out.println(s);
        }

贪婪爬取和非贪婪爬取

注:如果一个方法的形参是regex 那它一定能识别正则表达式

正则表达式在字符串方法中的使用

捕获分组和非捕获分组

1.捕获分组(默认)

可以获取每组中的内容反复使用。

内部使用:\\组号

外部使用:¥组号

2.组号的特点:

从1开始,连续不间断

以在括号为基准,最左边的是第一组

3.非捕获分组:

分组之后不需要再用本组数据,仅仅把数据括起来,不占组号。

(?:正则)捕获所有

(?=正则)捕获前面部分

(?!正则)捕获不是指定内容的前面部分

JDK7以前时间相关类

Date

1、如何创建日期对象?

●Date date = new Date();//获取当前时间

●Date date = new Date(指定毫秒值);

2、如何修改时间对象中的毫秒值

●setTime(毫秒值);

3、如何获取时间对象中的毫秒值

●getime();

SimpleDateFormat

作用:

格式化:把时间变成我们喜欢的格式。

解析:把字符串表示的时间变成Date对象。

指定格式

yyyy年MM月dd日 HH:mm:ss

代码实现

格式化:

//1.利用空参构造创建SimpleDateFormat对象,默认格式
        SimpleDateFormat sdf1=new SimpleDateFormat();
        Date d1 =new Date(0L);
        String str1=sdf1.format(d1);
        System.out.println(str1);//70-1-1 上午8:00

        //2.利用带参构造创建SimpleDateFormat对象,指定格式
        SimpleDateFormat sdf2 = new SimpleDateFormat ("yyyy年MM月dd日HH:mm:ss");
        String str2 = sdf2. format(d1);
        System. out. println(str2);//1970年01月01日08:00:00

解析:

//1.定义一个字符串表示时间
        String str = "2023-11-11 11:11:11";
        //2.利用空参构造创建SimpleDateFormat对象
        //创建对象的格式要跟字符串的格式完全一致
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = sdf.parse(str);

        //3.打印结果
        System.out.println(date.getTime());//1699672271000

Calendar

表示一个时间的日历对象

  1. 获取对象

通过getInstance方法获取对象

  1. 常见方法

setXxx:修改

getXxx:获取

add:在原有的基础.上进行增加或者减少

  1. 细节

日历类中月份的范围: 0~11

日历类中星期的特点:星期日是一周中的第一天

JDK8新增的相关类

Date

ZoneId:时区

代码实现

        //1.获取所有的时区名称
        Set<String> zoneIds = ZoneId.getAvailableZoneIds();//返回集合
        System.out.println(zoneIds.size());//6θ0
        System.out.println(zoneIds);// Asia/Shanghai

        //2.获取当前系统的默认时区
        ZoneId zoneId = ZoneId.systemDefault();
        System.out.println(zoneId);//Asia/Shanghai

        //3.获取指定的时区
        ZoneId zoneId1 = ZoneId.of("Asia/Pontianak");
        System.out.println(zoneId1);//Asia/ Pontianak

Instant时间戳

ZonedDateTime

带时区的时间

SimpleDateFormat

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

//获取时间对象
        ZonedDateTime time = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));

        //解析/格式化器
        DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss EE a");
        //格式化
        System.out.println(dtf1.format(time));

Calendar

工具类

包装类

基本数据类型对应的对象

1. jJDK5以后对包装类新增了什么特性?

自动装箱、自动拆箱

2.我们以后如何获取包装类对象?

不需要new,不需要调用方法,直接赋值即可

Integer成员方法

总结

常用的API还是很多的虽然不需要全部记住

但要花时间去熟悉和了解

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值