Java常用的API(1)

简介: Java常用的API

文章图片及参考资料均来自黑马成程序员B站课程:https://www.bilibili.com/video/BV17F411T7Ao,侵删。

idea常用快捷键

选中类名按ctrl+B 查看该类源码
进入Java类中后按ctrl+F12 在该类中搜索
ctrl+alt+v 自动补全左边代码
ctrl+shift+u 快速切换大小写
alt+insert 插入构造方法
ctrl+O 重写方法
ctrl+shift+向上箭头 把代码上移一行
ctrl+alt+m 抽取方法
ctrl+alt+左箭头 返回上一步

Math类

System类

![]](https://ucc.alicdn.com/images/user-upload-01/c8f96e79610c4400abb7d4c7305692ab.png)

runtime类

Runtime表示当前那虚拟机的运行环境,由于由于这个类里面的对象不是static的,调用方法前需要线获取Runtime对象

Runtime无法直接new一个对象,查看源码可知,Runtime在自己的类里边new了一个Runtime对象,并用final修饰(无法修改),然后用一个静态方法getRuntime返回,而把自己的构造方法写成了私有,即无法从类的外部再创建对象。

这样写的一个好处就是,外界调用getRuntime方法时,不管什么时候调用在哪里调用,所调用的都是同一个对象,无法new出很多个对象来(因为虚拟机只有一个)。

public class RuntimeTest {
    public static void main(String[] args) throws IOException {
        Runtime rt1 = Runtime.getRuntime();
        Runtime rt2 = Runtime.getRuntime();
        System.out.println(rt1 == rt2);
        
        rt1.exit(0);//退出虚拟机
        System.out.println("看看执行了没");
        
        System.out.println(rt1.availableProcessors());//获取CPU线程数
        System.out.println(rt1.maxMemory()/1024/1024);//总内存大小,单位byte
        System.out.println(rt1.totalMemory() / 1024 / 1024);//已经获取的内存大小
        System.out.println(rt1.freeMemory()/1024/1024);//剩余内存大小
        //运行CMD命令
        rt1.exec("notepad");//打开记事本
        /*关机操作shutdown
        -s:默认一分钟后关机
        -s -t 指定时间:再指定时间后关机
        -a:取消关机操作
        -r:关机并重启*/
        rt1.exec("shutdown -s -t 3600");
        rt1.exec("shutdown -a");
    }
}

Object类

Object类是Java中的顶级父类,所有类都直接或间接地继承于Object类

Object类中的方法可以被所有子类访问

Object类中一共有11个成员方法

toString方法

toString()方法返回对象的地址值。

如下图,Object类中的toString()方法与sout打印出来的效果是一样的,因为sout方法在底层就是调用了Object类中的toString方法。

如果不想打印地址值,而希望打印子类中的属性值,那么可以直接重写(@override)子类中的toString方法

Equals方法

Object类中的equals()方法默认比较两个对象的地址值,String类中对其进行了重写。

clone方法

对象克隆:把A对象属性值完全拷贝给B对象,即为对象克隆

用protected修饰的方法可以在本包中的类和其他包中的子类被调用。

clone方法前用protected修饰,用protected修饰的方法可以在其他包中的子类当中访问,但不能在其他类中用子类对象访问

即:不能再测试类中通过子类对象调用clone方法。

因此,子类要调用clone方法,需要在子类中重写一下clone方法:

@Override
protected Object clone() throws CloneNotSupportedException {
    return super.clone();
}

另外,需要在子类定义的开头加上一个implement Cloneable接口,变成一个实现类。

但是实际上,Cloneable是一个没有任何抽象方法的接口:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Vz5Uh7o-1669103793390)(C:\Users\cong\AppData\Roaming\Typora\typora-user-images\image-20221112200234063.png)]

如果一个接口中没有抽象方法,表示这个接口是一个标记性的接口

如,Cloneable接口一旦被实现,表示当前类的对象就可以被克隆,若没有实现,当前类对象就不能被克隆。

浅克隆,基本数据类型复制其数据,引用数据类型复制其地址值

弊端:修改一个对象中的引用数据(如修改数组中的值),会同步修改另一个克隆对象的引用数据。

浅克隆VS深克隆:

object中默认的clone方法是浅克隆,要实现深克隆需要在子类中重写clone方法

Objects工具类

Objects是一个工具类,提供了一些方法去完成一些功能。

BigInteger和BigDecimal类

BigInteger类的构造方法

BigInteger对象一旦创建,内部记录的值将不再改变


Java常用的API(2)https://developer.aliyun.com/article/1540975

目录
相关文章
|
3天前
|
监控 安全 Java
java中并发Queue种类与各自API特点
java中并发Queue种类与各自API特点
16 0
|
5天前
|
Java API 索引
java中String类常用API
java中String类常用API
|
5天前
|
Java API
java调用个人微信API接口收发朋友圈,删除评论朋友圈
java调用个人微信API接口收发朋友圈,删除评论朋友圈
|
1天前
|
缓存 JSON Java
使用Java进行RESTful API开发的最佳实践
使用Java进行RESTful API开发的最佳实践
|
1天前
|
Java 机器人 程序员
Java中的lambda表达式与Stream API:高效的函数式编程
Java中的lambda表达式与Stream API:高效的函数式编程
|
2天前
|
缓存 Java API
使用GraphQL优化Java应用的API性能
使用GraphQL优化Java应用的API性能
|
5天前
|
Java API 索引
java中ArrayList类常用API
java中ArrayList类常用API
|
5天前
|
Java API
备战第十五届蓝桥杯Java软件开发大学B组常见API记录
备战第十五届蓝桥杯Java软件开发大学B组常见API记录
6 0
|
5天前
|
Java API 开发工具
企业微信api,企业微信sdk接口java调用源码
企业微信api,企业微信sdk接口java调用源码
|
5天前
|
Java API 开发工具
个人微信api接口java调用源代码
个人微信api接口java调用源代码