• Java基础-常用类


    Java常用类

    Arrays

    Arrays 类包含用于操作数组的各种方法(例如排序和搜索)。还包含一个静态工厂,允许将数组转为 List。

    import java.util.Arrays;
    import java.util.Random;
    
    public class hello {
        public static void main(String[] args) {
            int[] arr = new int[10];
            //将数组元素都设为9
            Arrays.fill(arr, 9);
            System.out.println("fill:" + Arrays.toString(arr));
            Random random = new Random();
            for (int i = 0; i < arr.length; i++) {
                //使用100以内的随机数赋值数组
                arr[i] = random.nextInt(101);
            }
            //重新赋值后的数组
            System.out.println("重新赋值:" + Arrays.toString(arr));
            //将索引为5的元素设为50
            arr[5] = 50;
            //排序
            Arrays.sort(arr);
            //排序后的数组
            System.out.println("sort排序后:" + Arrays.toString(arr));
            //查找50的位置
            int i = Arrays.binarySearch(arr, 50);
            System.out.println("值为50的元素索引:"+i);
            //复制一份新数组
            int[] newArr = Arrays.copyOf(arr, arr.length);
            //比较
            System.out.println("equals:"+Arrays.equals(arr, newArr));
        }
    }
    
    

    fill:[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
    重新赋值:[82, 72, 33, 30, 67, 37, 3, 83, 58, 65]
    sort排序后:[3, 30, 33, 50, 58, 65, 67, 72, 82, 83]
    值为50的元素索引:3
    equals:true

    
    import java.util.Arrays;
    import java.util.Random;
    
    public class hello {
        public static void main(String[] args) {
            /**
             * 使用 Arrays 将数组 [6, 17, 92, 32, 58, 22, 84, 66, 36, 33] 进行排序。
             * 找出排序后 33 所在的位置。
             * 测试一下如果不排序能否找到值 33
             */
            int[] arr = {6, 17, 92, 32, 58, 22, 84, 66, 36, 33};
            System.out.println("排序之前:" + Arrays.toString(arr));
    
            Arrays.sort(arr);
            System.out.println("排序之前:" + Arrays.toString(arr));
    
            int i = Arrays.binarySearch(arr, 33);
            System.out.println("值为33的元素索引:"+i);
    
    
    
        }
    }
    
    

    排序之前:[6, 17, 92, 32, 58, 22, 84, 66, 36, 33]
    排序之前:[6, 17, 22, 32, 33, 36, 58, 66, 84, 92]
    值为33的元素索引:4

    StringBuilder

    StringBuilder 类是可变的。它是 String 的对等类,它可以增加和编写字符的可变序列,并且能够将字符插入到字符串中间或附加到字符串末尾(当然是不用创建其他对象的)。

    public class StringBuilderTest {
    
        public static void main(String[] args){
            //定义和初始化一个StringBuilder类的字串s
            StringBuilder s = new StringBuilder("I");
            //在s后面添加字串" java"
            s.append(" java");
            //在s[1]的位置插入字串
            s.insert(1, " love");
            String t = s.toString(); //转为字符串
            System.out.println(t);
        }
    }
    
    

    输出结果为: I love java。

    Calendar

    Calendar 类是一个抽象类,它完成 Date 类与普通日期表示法之间的转换,而我们更多的是使用 Calendar 类的子类 GregorianCalendar 类。它实现了世界上普遍使用的公历系统。当然我们也可以继承 Calendar 类,然后自己定义实现日历方法。

    Date

    
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    public class hello {
        public static void main(String[] args) {
            System.out.println("完整显示日期时间:");
            // 字符串转换日期格式
            DateFormat fdate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String str = fdate.format(new Date());
            System.out.println(str);
    
            // 创建 Calendar 对象
            Calendar calendar = Calendar.getInstance();
            // 初始化 Calendar 对象,但并不必要,除非需要重置时间
            calendar.setTime(new Date());
    
            // 显示年份
            System.out.println("年: " + calendar.get(Calendar.YEAR));
    
            // 显示月份 (从0开始, 实际显示要加一)
            System.out.println("月: " + calendar.get(Calendar.MONTH));
    
    
            // 当前分钟数
            System.out.println("分钟: " + calendar.get(Calendar.MINUTE));
    
            // 今年的第 N 天
            System.out.println("今年的第 " + calendar.get(Calendar.DAY_OF_YEAR) + "天");
    
            // 本月第 N 天
            System.out.println("本月的第 " + calendar.get(Calendar.DAY_OF_MONTH) + "天");
    
            // 3小时以后
            calendar.add(Calendar.HOUR_OF_DAY, 3);
            System.out.println("三小时以后的时间: " + calendar.getTime());
            // 格式化显示
            str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
            System.out.println(str);
    
            // 重置 Calendar 显示当前时间
            calendar.setTime(new Date());
            str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());
            System.out.println(str);
    
            // 创建一个 Calendar 用于比较时间
            Calendar calendarNew = Calendar.getInstance();
    
            // 设定为 5 小时以前,后者大,显示 -1
            calendarNew.add(Calendar.HOUR, -5);
            System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    
            // 设定7小时以后,前者大,显示 1
            calendarNew.add(Calendar.HOUR, +7);
            System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    
            // 退回 2 小时,时间相同,显示0
            calendarNew.add(Calendar.HOUR, -2);
            System.out.println("时间比较:" + calendarNew.compareTo(calendar));
    
            // calendarNew创建时间点
            System.out.println((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendarNew.getTime()));
            // calendar创建时间点
            System.out.println((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime()));
            System.out.println("时间比较:" + calendarNew.compareTo(calendar));
        }
    }
    
    
    完整显示日期时间:
    2020-09-30 15:58:48
    年: 2020
    月: 8
    分钟: 58
    今年的第 274天
    本月的第 30天
    三小时以后的时间: Wed Sep 30 18:58:48 CST 2020
    2020-09-30 18:58:48:848
    2020-09-30 15:58:48:943
    时间比较:-1
    时间比较:1
    时间比较:0
    2020-09-30 15:58:48:943
    2020-09-30 15:58:48:943
    时间比较:0
    
    
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class DateDemo {
        public static void main(String[] args) {
            String strDate, strTime;
            Date objDate = new Date();
            System.out.println("今天的日期是:" + objDate);
            long time = objDate.getTime();
            System.out.println("自1970年1月1日起以毫秒为单位的时间(GMT):" + time);
            strDate = objDate.toString();
            //提取 GMT 时间
            strTime = strDate.substring(11, (strDate.length() - 4));
            //按小时、分钟和秒提取时间
            strTime = "时间:" + strTime.substring(0, 8);
            System.out.println(strTime);
            //格式化时间
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            System.out.println(formatter.format(objDate));
        }
    }
    
    
    
    
    今天的日期是:Wed Dec 12 14:43:15 CST 2018
    自1970年1月1日起以毫秒为单位的时间(GMT):1544596995669
    时间:14:43:15
    2018-12-12 14:43:15
    
    

    Math

    方法 返回值 功能描述
    sin(double numvalue) double 计算角 numvalue 的正弦值
    cos(double numvalue) double 计算角 numvalue 的余弦值
    acos(double numvalue) double 计算 numvalue 的反余弦
    asin(double numvalue) double 计算 numvalue 的反正弦
    atan(double numvalue) double 计算 numvalue 的反正切
    pow(double a, double b) double 计算 a 的 b 次方
    sqrt(double numvalue) double 计算给定值的正平方根
    abs(int numvalue) int 计算 int 类型值 numvalue 的绝对值,也接收 long、float 和 double 类型的参数
    ceil(double numvalue) double 返回大于等于 numvalue 的最小整数值
    floor(double numvalue) double 返回小于等于 numvalue 的最大整数值
    max(int a, int b) int 返回 int 型 a 和 b 中的较大值,也接收 long、float 和 double 类型的参数
    min(int a, int b) int 返回 a 和 b 中的较小值,也可接受 long、float 和 double 类型的参数
    rint(double numvalue) double 返回最接近 numvalue 的整数值
    round(T arg) arg 为 double 时返回 long,为 float 时返回 int 返回最接近 arg 的整数值
    random() double 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
    public class MathDemo {
        public static void main(String[] args) {
            System.out.println(Math.abs(-12.7));
            System.out.println(Math.ceil(12.7));
            System.out.println(Math.rint(12.4));
            System.out.println(Math.random());
            System.out.println("sin30 = " + Math.sin(Math.PI / 6));
            // 计算30°的正弦值,参数是用弧度表示的角,即π的六分之一
            System.out.println("cos30 = " + Math.cos(Math.PI / 6));
            // 计算30°的余弦值,这些计算三角函数的方法,其参数和返回值的类型都为double
            System.out.println("tan30 = " + Math.tan(Math.PI / 6));
            // 计算30°的正切值
        }
    }
    
    

    12.7
    13.0
    12.0
    0.8011998172263968
    sin30 = 0.49999999999999994
    cos30 = 0.8660254037844387
    tan30 = 0.5773502691896257

    System

    - 标准输入,标准输出和错误输出流;
    - 访问外部定义的属性和环境变量;
    - 加载文件和库的方法;
    - 以及用于快速复制数组的实用方法。
    
    
    

    System 不可以被实例化,只可以使用其静态方法。

    //从指定的源数组中复制一个数组,从源数组指定的位置开始,到目标数组指定的位置
    public static void arraycopy(Object src,int srcPos, Object dest,int desPos,int length)
    //返回以毫秒为单位的当前时间(从1970年到现在的毫秒数)
    public static long currentTimeMillis()
    //终止当前正在运行的Java虚拟机,status为 0时退出
    public static void exit(int status)
    //  运行垃圾收集器
    public static void gc()
    // 取得当前系统的全部属性
    public static Properties getProperties()
    //获取指定键的系统属性
    public static String  getProperty(String key)
    
    
    
    
    
    import java.util.Arrays;
    
    public class SystemDemo {
        public static void main(String[] args) {
            int[] a = {7, 8, 9, 10, 11};
            int[] b = {1, 2, 3, 4, 5, 6};
            //从数组a的第二个元素开始,复制到b数组的第三个位置 复制的元素长度为3
            System.arraycopy(a, 1, b, 2, 3);
            //输出结果
            System.out.println(Arrays.toString(b));
            System.out.println("当前时间:" + System.currentTimeMillis());
            System.out.println("java版本信息:" + System.getProperty("java.version"));
            //运行垃圾收集器
            System.gc();
            //退出
            System.exit(0);
        }
    }
    
    
    

    Random

    Random 类用于生成伪随机数流,在 java.util包下。

    import java.util.Random;
    
    public class RandomDemo {
        public static void main(String[] args) {
            Random random = new Random();
            //随机生成一个整数 int范围
            System.out.println(random.nextInt());
            //生成 [0,n] 范围的整数  设n=100
            System.out.println(random.nextInt(100 + 1));
            //生成 [0,n) 范围的整数  设n=100
            System.out.println(random.nextInt(100));
            //生成 [m,n] 范围的整数  设n=100 m=40
            System.out.println((random.nextInt(100 - 40 + 1) + 40));
            //随机生成一个整数 long范围
            System.out.print(random.nextLong());
            //生成[0,1.0)范围的float型小数
            System.out.println(random.nextFloat());
            //生成[0,1.0)范围的double型小数
            System.out.println(random.nextDouble());
        }
    }
    
    

    272128541
    67
    93
    66
    -23177167376469717070.93104035
    0.20044632645967309

  • 相关阅读:
    【华为云技术分享】【我的物联网成长记19】物联网智慧路灯应用代码解析(上)
    【华为云技术分享】跟唐老师学习云网络
    【华为云技术分享】数据管理服务DAS 之 数据库自动化运维功能展播4:慢SQL
    【华为云技术分享】初识MySQL隔离级别
    【华为云技术分享】DAS文件上传组件的进化
    【华为云技术分享】为什么越来越多企业正在往ARM平台迁移?
    【华为云技术分享】云原生数据库三驾马车之TaurusDB
    【华为云技术分享】云图说|超赞!终于有人把云存储“三兄弟”讲清楚了!
    Search for a Range
    Search in Rotated Sorted Array
  • 原文地址:https://www.cnblogs.com/hiszm/p/13755115.html
Copyright © 2020-2023  润新知