【Java】Notes and Insights 24【常用API Math类 System类 计算机中的时间原点 Runtime类 Object类 对象克隆 第三方工具使用 】

常用API

  • Math
  • System
  • Runtime
  • Object和Objects
  • BigInteger和BigDecimal
  • 正则表达式

Java帮我们写好的各种Java类统称为API
不要背,只需要记一下类名和类的作用并养成查询API帮助文档的习惯

Math

  • 是一个帮助我们进行数学运算的工具类
  • 私有化构造方法(外界不能创建其对象)所有方法都是静态的(直接用类名.就可以调用)

Math类的常用方法

方法名说明
public static int abs(int a)获取参数的绝对值
public static double random()返回值为double的随机值,范围 [0.0, 1.0)
public static double ceil(double a)向上取整
public static double floor(double a)向下取整
public static int round(float a)四舍五入
public static int max(int a, int b)获取两个int值中的较大值
public static double pow(double a, double b)返回a的b次幂

System

System也是一个工具类,提供了一些与系统相关的方法

常见方法名说明
public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数)数组拷贝
public static void exit(int status)终止当前运行的Java虚拟机
public static long currentTimeMillis()返回当前系统的时间毫秒值形式

计算机中的时间原点

1970年1月1日 00:00:00

原因:1969年8月,贝尔实验室的程序员肯汤普逊用一个月时间开始着手创造一个全新的革命性的操作系统
使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本
随后与丹尼斯里奇改进了B语言,开发出了C语言,重写了UNIX
1970年1月1日是C语言的生日,计算机中的时间原点

我国在东八区:1970年1月1日 8:00:00

Runtime

Runtime这个类是表示当前虚拟机的运行环境里面的方法不是静态的,所以要先获取到Runtime的对象后才能调用方法
这个类的对象不能直接new 需要使用一个静态方法获取

方法名说明
public static Runtime getRuntime()当前系统的运行环境对象
public void exit(int status)停止虚拟机
public int availableProcessors()获得当前操作系统CPU的线程数
public long maxMemory()JVM能从系统中获取的总内存大小(byte)
public long totalMemory()JVM已经从系统中获取的总内存的大小(byte)
public long freeMemory()JVM剩余内存大小(byte)
public Process exec(String command)运行cmd命令

Object

  • Object是Java中的顶级父类所有的类都直接或间接继承于Object类
  • Object类中的方法可以被所有子类访问,所以我们要学习Object类和其中的方法

Object的构造方法

Object当中没有成员变量,所以没有带参构造(子类的共性才会向父类抽取)
public Object() 空参构造
顶级父类中只有无参构造方法,所以所有其子类(任意类)中的构造方法中都有一个隐藏的super();默认访问父类的无参构造,而不是有参构造

Object中的成员方法

方法名说明
public String toString()返回对象的字符串表示形式 ( 包名 + 类名 @ 对象的地址值)
public boolean equals(Object obj)比较两个对象是否相等
protected Object clone(int a)对象克隆

方法的使用与底层逻辑

对象克隆(拷贝)(复制)

把A对象的属性值完全拷贝给B对象
例如电信一区到电信二区的角色克隆
基本数据类型:存储的是真实的值
引用数据类型:变量记录地址值

对象克隆一(浅克隆,浅拷贝)(完全拷贝):两个对象使用的是一个数组(隐患)
对象克隆二(深克隆,深拷贝)(一劳永逸的深克隆):二者都是创建一个新的对象,
如果是基本数据类型,把变量记录的数据值直接拷贝
但是如果是引用数据类型,就不直接拷贝地址值了,重新创建一个新的数组,把原来数组中的数据拷贝到新数组当中,但是由于字符串依旧不是手动new出来的,就会放在StringTable串池中进行管理,复用

第三方工具:gson-2.6.2.jar

选中,Ctrl + C , 回到Idea在当前模块下新建一个包,lib , library的缩写,表示我们要用到别人写的代码了,所有的都会放到 lib文件夹 中, Ctrl + V , 右键点击 , Add as Library ,OK

  1. 第三方写的代码导入到项目当中
  2. 编写代码

总结:

  1. toString(): 一般会重写,打印对象时如果想要打印属性的话
  2. equals(): 比较对象时会重写,想要比较对象属性值是否相同的话
  3. clone(): 默认浅克隆,如果需要深克隆就要重写或使用第三方工具类
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Zanebla

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

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

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

打赏作者

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

抵扣说明:

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

余额充值