Java常用工具类

 

常用工具类

1.System

public final class System
extends Object

该类是不能实例化的,是一个final类也不能被继承。它提供的方法和属性都是static的。

currentTimeMillis():返回以毫秒为单位的当前时间。

arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

这个方法可以实现数组的复制和扩容。

public class TestSystem {
    public static void main(String[] args) {
        int[] arrs1= new int[] {1,2,3,4,5};
        int[] arrs2=new int[10];
        System.arraycopy(arrs1, 0, arrs2, 0, arrs1.length);
        System.out.println(Arrays.toString(arrs2));
        int[] arrs3=new int[10];
        System.arraycopy(arrs1, 0, arrs3, 0, 3);
        System.out.println(Arrays.toString(arrs3));
    }
}
在使用此方法时如果参数使用不当可能会导致数组下标越界异常。

gc()运行垃圾回收器:

调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。

exit(int status) 终止当前正在运行的 Java 虚拟机。 break,return System.exit()

public class TestSystem2 {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("是否停止应用:(yes/no)");
        String answer=input.next();
        if("yes".equals(answer)) {
            System.exit(0);
        }
        System.out.println("程序继续执行......");
    }
}

Random:此类的实例用于生成伪随机数流

可以以不同的构造方法创建一个Random对象,无参数构造是不设置随机种子的。 有参数的构造是可以设置随机种子。通过无参构造方法产生随机生成器后也可以通过setSeed()方法设置随机种子,随机种子相同的两个生成器每次产生的随机数是相同的。

public class TestRandom {
    public static void main(String[] args) {
        Random random=new Random();
        random.setSeed(System.currentTimeMillis());

        for(int i=0;i<100;i++) {
            int rand=random.nextInt(10);
            System.out.println(rand);
        }
    }
}

2.Math类:

public final class Math extends Object

Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

该类中所有的方法都是static的。

Math的常用方法:

public class TestMath1 {
    public static void main(String[] args) {
        System.out.println(Math.PI);
        //求一个数的绝对值
        System.out.println(Math.abs(-5));
        //求两个数中的最大值
        System.out.println(Math.max(10, 5));
        //求两个数中的最小值
        System.out.println(Math.min(10, 5));
        //计算一个数的n次幂
        System.out.println(Math.pow(2, 32));
        //返回不小于这个数最小整数
        System.out.println(Math.ceil(3.1));
        //返回不于于这个数的最大整数
        System.out.println(Math.floor(3.9));
        //四舍五入取整
        System.out.println(Math.round(3.5));
        //生成随机数(0-1)之间的一个小数
        System.out.println(Math.random());
        //开平方根
        System.out.println(Math.sqrt(9));
    }
}

3.Arrays类:

java.util.Arrays

public class Arrays extends Object

此类包含用来操作数组(比如排序和搜索)的各种方法 sort方法 对指定的 int 型数组按数字升序进行排序

public class ArraysTest {
    public static void main(String[] args) {
        int[] arrs= {8,10,3,5,6,};
        Arrays.sort(arrs);
        for(int a:arrs) {
            System.out.println(a);
        }
    }
}

binarySearch(int[] a, int key):

使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。

public class ArraysTest {
    public static void main(String[] args) {
        int[] arrs= {8,10,3,5,6};
        Arrays.sort(arrs);
        for(int a:arrs) {
            System.out.println(a);
        }

        int index=Arrays.binarySearch(arrs, 9);
        if(index>=0) {
            System.out.println("找到了:"+index);
        }else {
            System.out.println("没有找到:"+index);
        }
    }
}

copyOf(int[] original, int newLength)

复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。

public class ArraysTest2 {
    public static void main(String[] args) {
        int[] arrs=new int[] {1,2,3,4,5};
         arrs=Arrays.copyOf(arrs, 10);
        for(int a:arrs) {
            System.out.print(a+"\t");
        }
    }
}

toString(int[] a)

返回指定数组内容的字符串表示形式。

public class ArraysTest2 {
    public static void main(String[] args) {
        int[] arrs=new int[] {1,2,3,4,5};
        arrs=Arrays.copyOf(arrs, 10);
        /*for(int a:arrs) {
            System.out.print(a+"\t");
        }*/
        System.out.println(Arrays.toString(arrs));
    }
}

Java中共有8种基本数据类型,而java完全面向对象的程序设计语言,一切元素都可以以面向对象的方式进行访问,所以每一种基本数据类型,都对应一种包装类型。

以Integer为例参考案例:

public class IntegerTest {
    public static void main(String[] args) {        
        //自动装箱
        Integer i=5;
        byte b=i.byteValue();
        double d=i.doubleValue();
        float f=i.floatValue();
        int n=i.intValue();
        //自动拆箱
        int x=i;    
        //装箱
        Integer i2=Integer.valueOf(5);
        //拆箱
        int y=i2.intValue();

        int maxvalue=Integer.MAX_VALUE;
        int minvalue=Integer.MIN_VALUE;
        System.out.println(maxvalue);
        System.out.println(minvalue);
    }
}

将基本类型转换成引用类型的方式:

1.  自动装箱
2.  使用构造方法创建包装对象
3.  使用包装类的valueOf()方法

数值数据类型的包装类在使用parseXxxx()方法的时候要注意,方法的参数必须是数字的有效表示,否则会引发NumberFormatException

4.Character:

Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。 此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。

public class CharacterTest {
    public static void main(String[] args) {
        Character ch = 'A';
        if (Character.isUpperCase(ch)) {
            System.out.println("是大写");
            // 转成小写
            char c = Character.toLowerCase(ch);
            System.out.println(c);
        } else {
            System.out.println("是小写");
            char c = Character.toUpperCase(ch);
            System.out.println(c);
        }

        if (Character.isDigit(ch)) {
            System.out.println("是一个数字字符");
        } else {
            System.out.println("不是一个数字字符");
        }
    }
}

 

posted @ 2019-08-07 18:05  流氓的夏天  阅读(220)  评论(0编辑  收藏  举报