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

简介: 常用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);

完结🌹 🌹 🌹

相关文章
|
4月前
|
UED 开发工具 iOS开发
Uno Platform大揭秘:如何在你的跨平台应用中,巧妙融入第三方库与服务,一键解锁无限可能,让应用功能飙升,用户体验爆棚!
【8月更文挑战第31天】Uno Platform 让开发者能用同一代码库打造 Windows、iOS、Android、macOS 甚至 Web 的多彩应用。本文介绍如何在 Uno Platform 中集成第三方库和服务,如 Mapbox 或 Google Maps 的 .NET SDK,以增强应用功能并提升用户体验。通过 NuGet 安装所需库,并在 XAML 页面中添加相应控件,即可实现地图等功能。尽管 Uno 平台减少了平台差异,但仍需关注版本兼容性和性能问题,确保应用在多平台上表现一致。掌握正确方法,让跨平台应用更出色。
61 0
|
4月前
|
XML 缓存 API
【Azure API 管理】使用APIM进行XML内容读取时遇见的诡异错误 Expression evaluation failed. Object reference not set to an instance of an object.
【Azure API 管理】使用APIM进行XML内容读取时遇见的诡异错误 Expression evaluation failed. Object reference not set to an instance of an object.
|
6月前
|
Java API
API:object当中的各种方法刨析(今日份:equals toString)
API:object当中的各种方法刨析(今日份:equals toString)
|
6月前
|
Java Unix 程序员
JavaSE——常用API进阶二(1/8)-Math、System、Runtime(它们提供的常见方法以及具体使用)
JavaSE——常用API进阶二(1/8)-Math、System、Runtime(它们提供的常见方法以及具体使用)
34 1
|
5月前
|
JSON JavaScript API
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
134 0
|
6月前
|
Java API
JavaSE——常用API进阶一(1/3)-Object类(Object类的作用、Object类的常见方法-toString方法、equal方法、clone方法)
JavaSE——常用API进阶一(1/3)-Object类(Object类的作用、Object类的常见方法-toString方法、equal方法、clone方法)
50 0
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
114 4
|
2月前
|
Java
Java Object 类详解
在 Java 中,`Object` 类是所有类的根类,每个 Java 类都直接或间接继承自 `Object`。作为所有类的超类,`Object` 定义了若干基本方法,如 `equals`、`hashCode`、`toString` 等,这些方法在所有对象中均可使用。通过重写这些方法,可以实现基于内容的比较、生成有意义的字符串表示以及确保哈希码的一致性。此外,`Object` 还提供了 `clone`、`getClass`、`notify`、`notifyAll` 和 `wait` 等方法,支持对象克隆、反射机制及线程同步。理解和重写这些方法有助于提升 Java 代码的可读性和可维护性。
100 20
|
4月前
|
Java
【Java基础面试二十】、介绍一下Object类中的方法
这篇文章介绍了Java中Object类的常用方法,包括`getClass()`、`equals()`、`hashCode()`、`toString()`、`wait()`、`notify()`、`notifyAll()`和`clone()`,并提到了不推荐使用的`finalize()`方法。
【Java基础面试二十】、介绍一下Object类中的方法
|
3月前
|
Python
类与面向对象编程(Object-Oriented Programming, OOP)
类与面向对象编程(Object-Oriented Programming, OOP)
25 0