Java基础知识(二十三)常用类四(Arrays,Date,Math,包装类,Random)

目录

一、Arrays类

 二、Date类

三、Math类

四、包装类

1、调用包装类的方法

2、字符串转换

五、Random类


一、Arrays类

 Arrays针对于数组做操作的类,该类包含用于操作数组的各种方法(如排序和搜索)。
 public static String toString(int[] a)
 public static void sort(int[] a)
 public static int binarySearch(int[] a,int key)

代码实现:

public class ArraysDemo {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr = {21, 32, 44, 1, 4, 89, 16};

        //public static String toString(int[] a)
        //将数组转换成一个字符串
//        System.out.println(arr);
        String s = Arrays.toString(arr);
        System.out.println(s);

        System.out.println("=================================");
        //public static void sort(int[] a)
        Arrays.sort(arr);
        System.out.println("排序后的数组为:" + Arrays.toString(arr));

        System.out.println("=================================");
        //public static int binarySearch(int[] a,int key)
        //[1, 4, 16, 21, 32, 44, 89]
        //二分查找的前提是数组本身是排过序的
        System.out.println("二分查找32:" + Arrays.binarySearch(arr, 32));
        System.out.println("二分查找32:" + Arrays.binarySearch(arr, 100)); // -8



    }
}

 运算结果:

 其中结果中的-8是通过源码分析得出的:

arr:[1, 4, 16, 21, 32, 44, 89]
key:100


public static int binarySearch(int[] a, int key) {
    /*
            a -- arr -- [1, 4, 16, 21, 32, 44, 89]
            key -- 100
            a.length -- 7
    */
    return binarySearch0(a, 0, a.length, key);
}

// Like public version, but without range checks.
private static int binarySearch0(int[] a, int fromIndex, int toIndex,
                                 int key) {
    /*
        a -- arr -- [1, 4, 16, 21, 32, 44, 89]
        fromIndex -- 0
        toIndex -- 7
        key -- 100
    */

    int low = fromIndex;      // 0
    int high = toIndex - 1;   // 6

    while (low <= high) {
        int mid = (low + high) >>> 1; // 3  5  6
        int midVal = a[mid]; // 21 44 89

        if (midVal < key)
            low = mid + 1; // 4 6 7
        else if (midVal > key)
            high = mid - 1;
        else
            return mid; // key found
    }
    return -(low + 1);  // key not found.    -(7+1) -->  -8

 二、Date类

        Date:日期类

        构造方法:
            Date() 分配一个 Date对象,并初始化它,以便它代表它被分配的时间,测量到最近                的毫秒。

       日期格式化:SimpleDateFormat

代码实现:

public class DateDemo {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date); //Fri Jan 21 16:47:23 CST 2022 系统时间
        //由于我们经常看到时间不是这样的,应该是年,月,日,时分秒
        //日期的格式化
        //SimpleDateFormat(String pattern)
        //使用给定模式 SimpleDateFormat并使用默认的 FORMAT语言环境的默认日期格式符号。

        /**
         *      yyyy:年
         *      MM:月
         *      dd:日
         *      HH:24小时制度
         *      hh:12小时制度
         *      mm:表示分钟
         *      ss:表示秒
         */
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd EEE a hh:mm:ss ");
        String s = simpleDateFormat.format(date);
        System.out.println(s);

    }
}

 运算结果;

三、Math类

 Math:Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。
        public static int abs(int a)
        public static double ceil(double a)
        public static double floor(double a)
        public static int max(int a,int b) min自学
        public static double pow(double a,double b)
        public static double random()
        public static int round(float a) 参数为double的自学
        public static double sqrt(double a)

 代码实现:

public class MathDemo {
    public static void main(String[] args) {
        //public static int abs(int a) 绝对值
        int num1 = Math.abs(-10);
        System.out.println(num1);
        //public static double ceil(double a)
        double num2 = Math.ceil(12.04);
        System.out.println(num2);
        //floor
        double num3 = Math.floor(12.84);
        System.out.println(num3);
        //public static double sqrt(double a)
        //public static double sqrt(double a)返回double值正确舍入的正平方根。
        double num4 = Math.sqrt(3);
        System.out.println(num4);


    }
}

运算结果:

四、包装类

包装类类型:
                byte       Byte
                short      Short
                int        Integer
                long       Long
                float      Float
                double     Double
                char       Character
                boolean    Boolean

1、调用包装类的方法

 需求1:有100这个数据,计算处它的二进制,八进制,十六进制
 需求2:如何使用代码求出int类型数据范围

 代码实现:

public class PackageClassDemo1 {
    public static void main(String[] args) {
        //Integer: Integer类包装一个对象中的原始类型int的值。
        //public static String toBinaryString(int i)在基数2中返回整数参数的字符串表示形式为无符号整数。
        //求出int类型数据的二进制
        String s = Integer.toBinaryString(100);
        System.out.println("100的二进制为:" + s);

        //static String toHexString(int i)
        //返回整数参数的字符串表示形式,作为16位中的无符号整数。
        String s1 = Integer.toHexString(100);
        System.out.println("100的十六进制为:" + s1);

        //static String toOctalString(int i)
        //在基数8中返回整数参数的字符串表示形式为无符号整数。
        String s2 = Integer.toOctalString(100);
        System.out.println("100的八进制为:" + s2);

        //如何使用代码求出int类型数据范围
        //static int MAX_VALUE
        //一个持有最大值一个 int可以有2 31 -1。
        int maxValue = Integer.MAX_VALUE;

        //static int MIN_VALUE
        //的常量保持的最小值的 int可以具有,-2 31。
        int minValue = Integer.MIN_VALUE;

        System.out.println("int类型数据的最大值为:" + maxValue);
        System.out.println("int类型数据的最小值为:" + minValue);


    }
}

运算结果:

2、字符串转换

     包装类一般是用于基本数据类型与字符串之间做转换

        int类型的数据与String类型做互相转换

        int -- String
            static String valueOf(int i) 返回 int参数的字符串 int形式。

        String -- Integer -- int
            public static int parseInt(String s)将字符串参数解析为带符号的十进制整数。

public class PackageClassDemo2 {
    public static void main(String[] args) {
        //int -- String
        int num = 100;
        //方式1:static String valueOf(int i) 返回 int参数的字符串 int形式。
        String s = String.valueOf(num);  // 100 -->"100"
        System.out.println(s);
        System.out.println("==================================");
        //方式2:int -- Integer -- String
//        String string = new String(num);
        //Integer(int value) 构造一个新分配的 Integer对象,该对象表示指定的 int值。
        Integer integer = new Integer(num);
        System.out.println(integer); // Integer重写了toString方法
        String s1 = integer.toString();
        System.out.println(s1);
        //方式3:字符串拼接
        String s2 = ""+num;
        System.out.println(s2);
        //方式4:public static String toString(int i)
        String s3 = Integer.toString(100);
        System.out.println(s3);
        System.out.println("==========================");
        //String-->int
        String s4 = "200";
//        String s4 = "你好";
        //方式1:String--Integer--int
        //Integer(String s)
        //构造一个新分配 Integer对象,表示 int由指示值 String参数。
        Integer integer1 = new Integer(s4);
        System.out.println(integer1);
        //public int intValue()将 Integer的值作为 int 。
        int number = integer1.intValue();
        System.out.println(number);

        int i = integer1; //在包装类中称之为自动拆箱
        Integer i2 = 300; //在包装类中称之为自动装箱


    }
}

五、Random类

  java中专门生成随机数的类:Random

            public Random()
            public Random(long seed)

代码实现:

public class RandomDemo {
    public static void main(String[] args) {
        //public Random()
        Random random = new Random();
//        int i = random.nextInt();
//        System.out.println(i);

        int i = random.nextInt(10)+1; // 0-9
        System.out.println(i);

        //public Random(long seed)
//        Random random1 = new Random(10000000000L);

    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值