• 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+"	");
            }
        }
    }
    

    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+"	");
            }*/
            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("不是一个数字字符");
            }
        }
    }
    
  • 相关阅读:
    Qt新建线程的方法(有QRunnable,QThreadPool,moveToThread和QtConcurrent的例子)
    QThread 与 QObject的关系(QObject可以用于多线程,可以发送信号调用存在于其他线程的slot函数,但GUI类不可重入)
    Qt线程QThread简析(8个线程等级,在UI线程里可调用thread->wait()等待线程结束,exit()可直接退出线程,setStackSize设置线程堆栈,首次见到Qt::HANDLE,QThreadData和QThreadPrivate)
    QSettings保存程序设置
    QList 和std::list的比较
    转义字符()对JavaScript中JSON.parse的影响
    自定义类似QMutexLocker的CMutexLocker
    部件之间图标拖拽(使用很直观,效果很漂亮)
    QtSoap调用Web Service(QtSoap是非官方应用)
    QTableWidget 导出到csv表格
  • 原文地址:https://www.cnblogs.com/mxybk/p/11316904.html
Copyright © 2020-2023  润新知