常用API——Math,System,Object,Runtime

🔥Object、System是重点

一、Math

介绍:在Java中,Math类是一个包含数学函数和常数的工具类,提供了许多静态方法

作用:可以进行数学运算,如三角函数、指数函数、对数函数、取整函数等

// 演示几个

System.out.println(Math.sqrt(9));//开平方根、负数会返回NAN,0会返回0
System.out.println(Math.abs(-1));//求绝对值
System.out.println(Math.round(2.5));//四舍五入
System.out.println(Math.PI);    //3.141592653589793

 二、System

介绍:System类是一个包含一些有用的类字段和方法的工具类

作用:提供了许多与系统操作相关的方法

//演示,其中arraycopy这个方法重要,要掌握

System.exit(0);//退出虚拟机
System.out.println(System.currentTimeMillis());//1970 1 1至今的时间,单位毫秒

arraycopy数组拷贝

  1. //拷基本数据类型,两边要保持一致
  2. //拷引用数据类型,子类->子类 ,子类->父类。
  3. //把arr1考到arr2里面,arr1从0开始,arr2从1开始,拷贝3个
//拷贝数组
int arr1[] = {1,2,3,4};
int arr2[] = new int[5];

System.arraycopy(arr1, 0, arr2,1, 3);

三、object

介绍:所有类的父类,java中所有的子类都直接或间接继承该类

作用:提供了许多重要的方法tostring、equal、clone等这些方法很重要,一 一介绍

1. tostring方法

一般重写,打印对象时打印属性

Object中的tostring打印包名+类名+地址值

//object中tostring方法
int arr[] = new int[2];
System.out.println(arr.toString());//[I@4eec7777
//重写的方法
Student s1 = new Student();
System.out.println(s1.toString());//Student{name='null', id='null'}
2. equals方法

比较对象的属性值时会重写

object类默认比较地址值

//原码 比较的是地址值
public boolean equals(Object obj) {
    return (this == obj);
}

    student没有重写该方法

Student s1 = new Student();
Student s2 = new Student();

System.out.println(s1.equals(s2));//false 继承Object方法

    string重写了该方法

比较规则 :

先看两者类型,有一个不为string类就返回false

类型相同,比较内容

String s3 = "abc";
String s4 = "abc";
System.out.println(s3.equals(s4));//true

 3.练习

//字符串和stringBuilder的相互比较
String s3 = "abc";
StringBuilder sb = new StringBuilder();
sb.append("abc");
System.out.println(s3.equals(sb));//false
System.out.println(sb.equals(s3));//false

3. clone()方法

默认浅克隆

浅克隆:(不管是地址值还是普通值,都直接拷贝,一个改变都改变)

//浅克隆
int[] arr1 = {1,2,3,4,5};
User u3 = new User(arr1, "xiaoshou");
User u4 = (User) u3.clone();
u3.arr[0] = 100;
System.out.println(u3);//arr=[100, 2, 3, 4, 5], name='xiaoshou'
System.out.println(u4);//arr=[100, 2, 3, 4, 5], name='xiaoshou'

如果需要深克隆,需要重写方法或者使用第三方工具

深克隆:(基本数据类型拷贝,字符串复用,引用数据类型new一个新的)

//深克隆
int[] arr = {1,2,3,4,5};
User u1 = new User(arr, "pangdun");
User u2 = (User) u1.clone();
u1.arr[0] = 100;
System.out.println(u1);//arr=[100, 2, 3, 4, 5], name='pangdun'
System.out.println(u2);//arr=[1, 2, 3, 4, 5], name='pangdun'

四、Runtime

介绍:Runtime类表示当前Java应用程序的运行时环境

作用:用于管理和控制Java虚拟机和操作系统的运行时环境

例如:

//停止虚拟机
Runtime.getRuntime().exit(0);

//获取CPU线程数
System.out.println(Runtime.getRuntime().availableProcessors());
//获取虚拟机总内存
System.out.println(Runtime.getRuntime().maxMemory()/1024/1024);
//已使获取的总内存
System.out.println(Runtime.getRuntime().totalMemory()/1024/1024);
//未使用内存
System.out.println(Runtime.getRuntime().freeMemory()/1024/1024);

完结🌹 🌹 🌹

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不会就选C.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值