🔥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);
完结🌹 🌹 🌹