【Java】常用API、正则表达式

常用API

Math

常用方法

代码演示

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

注意

例如int型数据的取值范围是-2147483648 ~ 2147483647,如果超出此范围则传递的负数有误,不会有与之对应的正数,利用方法absExact可判断传递的数是否正确,如错误则会报错

System.out.println(Math.absExact(-2147483650));
ceil向上取整
System.out.println(Math.ceil(10.3));//11.0
        System.out.println(Math.ceil(10.6));//11.0
        System.out.println(Math.ceil( - 10.3));//-10.0
        System.out.println(Math.ceil( - 10.6));//-10.0
floor向下取整
System.out.println(Math.floor(10.3));//10.0
        System.out.println(Math.floor(10.6));//10.0
        System.out.println(Math.floor(-10.3));//-11.0
        System.out.println(Math.floor(-10.6));//-11.0
round四舍五入
System.out.println(Math.round(10.3));//10
System.out.println(Math.round(10.6));//11
System.out.println(Math.round(-10.3));//-10
System.out.println(Math.round(-10.6));//-11
max获取两个int型整数中的较大值
System.out.println(Math.max(1, 2));//2

获取两个int型中的较小值用min方法

pow返回a的b次幂的值
System.out.println(Math.pow(2, 3));//8.0

如果第二个参数为0~1之间的小数相当于开根号

开二次跟用方法sprt,立方根用方法cbrt

System.out.println(Math.sprt(4));//2
System.out.println(Math.cbrt(8));//2
random获取随机数
for (int i = 0; i < 10; i ++)
    System.out.println(Math.floor(Math.random() * 100) + 1);//获取1~100之间的随机数

System

常用方法

代码演示

exit终止当前运行的JVM
System.exit(0);
System.out.println("Hello~");
//进程已结束,退出代码0

方法的形参:状态码

0:表示JVM是正常停止的

非0:表示JVM是异常停止的

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

毫秒值是从1970-1-1至今的时间

arraycopy拷贝数组
int [] a = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int [] b = new int [5];
System.arraycopy(a, 0, b, 0, 5);

目的:将a数组中的前5个数拷贝到b数组中

参数含义

  1. 数据源,要拷贝的数组

  1. 从数据源中的哪个索引开始拷贝

  1. 目的地,拷贝到的数组

  1. 目的数组的开始索引

  1. 拷贝个数

Runtime

只能有一个对象

常用方法

代码演示

getRuntime当前系统运行对象
Runtime r = Runtime.getRuntime();
exit停止JVM
Runtime.getRuntime().exit(0);
availableProcessors获得CPU的线程数
System.out.println(Runtime.getRuntime().availableProcessors());//8
maxMemory JVM能从系统中获取的总内存大小(单位为byte)
System.out.println(Runtime.getRuntime().maxMemory() / 1024 / 1024);//打印出的数值单位为MB
totalMemory JVM已经从系统中获取的总内存大小(单位为byte)
System.out.println(Runtime.getRuntime().totalMemory() / 1024 / 1024);
freeMemory JVM剩余的内存大小(单位为byte)
System.out.println(Runtime.getRuntime().freeMemory() / 1024 / 1024);
exec运行cmd命令(此方法现在已弃用)
Runtime.getRuntime().exec("notepad");//打开记事本

shutdown:关机(必须加上参数才能使用)

-s:在一分钟之后关机

-s-t + 指定时间:在指定时间后关机(单位为秒)

-a:取消关机

-r:重启电脑

Object

Object是Java中的顶级父类,所有类都直接或间接的继承于Object类,其类中的方法可以被所有子类访问

常用方法

在顶级父类中无构造方法(无相同元素)

代码演示

toString返回对象的字符串形式
Object o = new Object();
String s = o.toString();
System.out.println(s);//java.lang.Object@7b23ec81

Student s = new Student();
String s1 = s.toString();
System.out.println(s1);//Test.Student@6acbcfc0

当使用sout打印一个对象的时候,底层会调用对象的toString方法,将对象转变为字符串,然后再打印到控制台上并进行换行处理,默认情况下,打印出来的为对象地址值。如果想要打印出来对象的属性值,需要重写toString方法

equals比较两个对象是否相等
String s = "abc";
StringBuilder sb = new StringBuilder("abc");
boolean b1 = s.equals(sb);//false
boolean b2 = sb.equals(s);//false

第一个false:equals方法是s调用的,所以为String类中的方法,先判断参数是否为字符串,不是直接返回false,如果是再比较内部属性

第二个false:equals方法是sb调用的,所以为Object类中的方法,相当于使用==比较两个对象的地址值是否相同

clone对象克隆

把A对象的属性值完全拷贝给B对象

浅克隆无论对象内部属性值是基本数据类型还是引用数据类型都完全拷贝过来(基本数据类型复制值,引用数据类型复制地址)

弊端:改变了一个引用数据类型中的值,两个都要改变

深克隆基本数据类型完全拷贝,字符串复用,引用数据类型重新创建新的(基本数据类型复制值,引用数据类型重新开辟一块新的空间。但由于String类除了new一个对象地址不同,所以String类还是引用原来的地址)

Object类中的clone是浅克隆

Objects

Objects是一个对象工具类

常用方法

代码演示

equals
boolean b = Objects.equals(s1, sb);

方法会先判断s1是否为null,如果是则直接返回false

如果不为null,则再次调用equals方法

BigInteger

常用方法

代码演示

Random r = new Random();
BigInteger bigInteger  = new BigInteger(4, r);//[0, 15]
BigInteger bigInteger = new BigInteger("1111111111111111111111111111111111111");
BigInteger bigInteger = new BigInteger("101", 2);//5

在使用第三种方法时,如果获取的是二进制,前面字符串出现0,1意外的数会报错

在静态方法获取BigInteger对象时,BigInteger对常用数字(-16~16)进行了优化,即提前把-16~16的BigInteger对象创建好,如果多次获取不会重新创建新的

存储上限:42亿的21亿次方

原因:数组中能存储的最大元素个数为21亿多,数组中每一位能表示的最大数字为42亿多,但此数字已超出计算机的存储空间,所以可以认为BigInteger无上限

BigDecimal

类型

占用字节数

总bit位数

小数部分bit位数

float

4

32

23

double

8

64

52

作用

  • 用于小数的精确计算

  • 用来表示很大的小数

BigDecimal b1 = new BigDecimal("0.01");
BigDecimal b2 = new BigDecimal("0.02");
System.out.println(b1.add(b2));//0.03

BigDecimal b3 = new BigDecimal(0.01);
BigDecimal b4 = new BigDecimal(0.02);
System.out.println(b3.add(b4));//0.03000000000000000062450045135165055398829281330108642578125

使用BigDecimal直接转换double数据类型时,数据会不准确,在实际

常用方法

正则表达式

作用:用来筛选符合规则的字符串

注意:一个符号只能匹配一个字符,多了,少了都会报错

        System.out.println("a".matches("[abc]"));//true
        System.out.println("d".matches("[abc]"));//false

        System.out.println("d".matches("[^abc]"));//true
        System.out.println("a".matches("[^abc]"));//false

        System.out.println("A".matches("[a-z A-Z]"));//true;
        System.out.println("1".matches("[a-z A-Z]"));//false
        System.out.println("兔年大吉".matches("...."));//true
        System.out.println("钱兔无量".matches("..."));//false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊呜冷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值