Java基础——工具类
一Java 常用类 Object
Object类是所有类、数组、枚举类的父类。位于Java.lang包。也就是说,Java允许把任意类型的对象赋给Object类型的变量。
Object类的常用方法
1、boolean equals(Object obj):判断指定对象与该对象是否相等。注意:此处的相等是指两个对象是同一个对象。(往往需要重写)
2、protected void finalize():当系统中没有引用变量引用到该对象时,垃圾回收器调用此方法来清理该对象的资源。
3、Class<?> getClass():返回该对象的运行时类。
4、int hashCode():返回对象的hashCode值。在默认的情况下,该值是和System.identityHashCode(Object obj)计算的值一样,即对象的地址。但是在很多类中,该值都被重写了,不再根据地址来计算其hashCode()方法值。
5、String toString():返回该对象的字符串表示。(运行时类名@十六进制hashCode值)一般类都重写该方法以表示该类的信息。
6、protected Object clone():得到当前对象的副本,二者之间完全隔离。
7、void wait():等待通信线程唤醒后再执行本线程。
8、void notify():随机唤醒一个在等待的线程。
9、void notifyAll():唤醒所有在等待的线程。
二Java 常用类 System
System 类提供了系统级的恒对属性和方法,位于Java.lang包。
System 类是final类不能被实例化,所有方法和属性都是静态的
System 类的常用方法:
- public static void gc()
运行垃圾回收器。
调用 gc
方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。
不要频繁使用,因为每次强制启动会消耗很多资源。每次调用gc命令,会调用finalize()方法,从自身到父类开始释放内存。
- public static void exit(int status)
终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
- public static long currentTimeMillis()
当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。用来测试程序运行时间
- public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src
- 源数组。srcPos
- 源数组中的起始位置。dest
- 目标数组。destPos
- 目标数据中的起始位置。length
- 要复制的数组元素的数量。
三Java 常用类 Random(随机数类)
Random类用于生成伪随机数,位于Java.util包
R0ntime类特点:
Runtime 类实例使应用程序能够与其运行的环境相连接 Runtime是单例模式的
R0ntime类对象的生成
R0ntime类常用方法:
1.nextInt(int n):取出不大于n的整数;返回值int。
2.nextDouble()生成一个随机的double值,介于[0, 1]之间
3.【当前可用内存】long freeMemory() ;返回 Java 虚拟机中的空闲内存量
4.【创建对象】Runtime runtime = Runtime.getRuntime();//创建对象 【
5.清理内存】runtime.gc();// 建议回收垃圾
查看gc()方法清理内存的效果:
System.out.println(runtime.freeMemory());//回收前的空闲内存
runtime.gc();// 建议回收垃圾
System.out.println(runtime.freeMemory());//回收后的空闲内存
四Java 常用类 Math
math类提供了执行基本数学运算的方法;位于java.lang包
math类是final类不能被实例化,所有方法和属性都是静态的
math类常用方法
【绝对值】Math.abs();//返回对应类型的绝对值
【最大值和最小值】Math.max(int a, int b) ,Math.min(int a,int b);(其他类型都可以)
【立方根】Math.cbrt(double a) ,返回double类型
【求幂】Math.pow(double a, double b) (参数1:底数,参数2:指数)
【正平方根】Math.sqrt(double a)
【随机数[0,1)】random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
【取整】ceil(double a) ,返回大于给定数的最小整数 floor(double a) ,返回小于给定数的最大整数
【四舍五入】 static int round(float a) static long round(double a)
五Java 常用类Arrays
Arrays类提供了一系列操作数组的方法,位于Java.util包,主要的功能可以实现数组元素的查找,数组内容的填充,排序等。
Arrays类常用方法
public static boolean equals(int[] a, int[] a2) 判断两个数组是否相等,此方法被重载多次,可以判断各种数据类型的数组
public static void fill(int[] a , int val) 将指定内容填充到数组之中,此方法被重载多次,可以填充各种数据类型的数组
public static void sort(int[] a) 数组排序,此方法被重载多次,可以对各种类型的数组进行排序
public static int binarySearch(int[] a ,int key) 对排序后的数组进行检索,此方法被重载多次,可以对各种类型的数组进行搜索
public static String toString(int[] a) 输出数组信息,此方法被重载多次,可以输出各种数据类型的数组
六Java 常用类包装类
Java语言是面向对象语言,但Java中的基本数据类型却不是面向对象的这在实际使用是是非常不便的,为了解决这个不足,再设计类时为每个基本数据类型设计了一个对应类
八个基本数据类型对应的类统称为包装类(Wrapper Class)
Integer提供了整型的常用操作方法
Character类提供了字符的常用操作方法