🔥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数组拷贝
- //拷基本数据类型,两边要保持一致
- //拷引用数据类型,子类->子类 ,子类->父类。
- //把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);
完结🌹 🌹 🌹