• Java基础之常用API


    Math

    abs

    求数的绝对值

    ceil

    ceil在英语中是天花板的意思,代表向上取整

    floor

    floor在英语中是地板的意思,代表向下取整

    round

    四舍五入,返回的是整数

    pow

    求幂,pow(x,y)求x的y次方

    public static void main(String[] args) {
            System.out.println(Math.ceil(3.02));
            System.out.println(Math.floor(3.9));
            System.out.println(Math.abs(-3.3));
            System.out.println(Math.round(3.4));
            System.out.println(Math.pow(2, 3));
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    System

    System.currentTimeMillis()

    获取当前毫秒值,从计算机纪念日1970年一月一日开始算

    例子:计算一下字符串拼接得效率

    public static void main(String[] args) {
            long start = System.currentTimeMillis();
            String a = "";
            for (int i = 0; i < 100000; i++) {
                a = a+i;
            }
            long end = System.currentTimeMillis();
            System.out.println(end - start);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    用StringBuilder提升效率

    public static void main(String[] args) {
            long start = System.currentTimeMillis();
            /*String a = "";
            for (int i = 0; i < 100000; i++) {
                a = a+i;
            }*/
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < 100000; i++) {
                sb.append(i);
            }
            String s = sb.toString();
            long end = System.currentTimeMillis();
            System.out.println(end - start);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    String拼接字符串效率太低,每次都要新建一个对象,StringBuilder极大提升了效率。

    arraycopy

    System.arraycopy(原数组,原数组拷贝的起点,新数组,新数组拷贝的位置,拷贝的元素个数)

    public static void main(String[] args) {
            int[] oldArr = {11,22,33,44,55};
            int[] newArr = new int[5];
            System.arraycopy(oldArr,1,newArr,0,4);
            System.out.println(Arrays.toString(newArr));
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    BigDecimal

    创建对象的方法

    构造方法:BigDecimal(String val)

    静态方法:valueOf(double val)

    常用方法

    System.out.println(0.1+0.2);
    
    • 1

    回顾之前的知识,我们打印出来应该是0.3

    但实际结果是
    在这里插入图片描述
    所以我们为了避免这种情况的发生,使用BigDecimal

    加法

    BigDecimal add(BigDecimal b)

    		BigDecimal a = new BigDecimal("0.1");
            BigDecimal b = new BigDecimal("0.2");
            //加法
            BigDecimal add = a.add(b);
            System.out.println(add);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    减法

    BigDecimal subtract(BigDecimal b)

    		//减法
            BigDecimal subtract = a.subtract(b);
            System.out.println(subtract);
    
    • 1
    • 2
    • 3

    乘法

    BigDecimal multiply(BigDecimal b)

    		//乘法
            BigDecimal multiply = a.multiply(b);
            System.out.println(multiply);
    
    • 1
    • 2
    • 3

    除法

    		//除法(除得尽,除不尽会报错)
            BigDecimal divide = a.divide(b);
            System.out.println(divide);
    
    • 1
    • 2
    • 3

    除不尽:divide(除数,保留小数位数,舍入模式枚举)
    RoundingMode.HALF_UP 四舍五入

    		//除不尽
            BigDecimal divide1 = a.divide(b, 2, RoundingMode.HALF_UP);
            System.out.println(divide1);
    
    • 1
    • 2
    • 3

    基本类型包装类

    Java是面向对象得语言,Java得设计思想是一切皆对象,而基本数据类型不是对象,于是Java为每种基本数据类型都设计了对应的类,称为包装类。

    byteByte
    shortShort
    intInteger
    longLong
    floatFloat
    doubleDouble
    charCharacter
    booleanBoolean

    重点:字符串转基本类型

    public static void main(String[] args) {
            String a = "6.66";
            double b = Double.parseDouble(a);
            System.out.println(b);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Date

    public static void main(String[] args) {
            Date date = new Date();
            System.out.println(date);
        }
    
    • 1
    • 2
    • 3
    • 4

    把时间规范化

    public static void main(String[] args) {
            Date date = new Date();
            System.out.println(date);
    
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
            String format = simpleDateFormat.format(date);
            System.out.println(format);
    
    		//指定模板
    		SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String format1 = simpleDateFormat1.format(date);
            System.out.println(format1);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    字符串转为Date类型

    public static void main(String[] args) throws ParseException {
            String str = "2022-11-3";
            String str2 = "2020年12月12日 15:10:20";
    
            //模板的格式要和转换的字符串格式一样
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy-MM-dd");
    
            Date parse = simpleDateFormat.parse(str);
    
            System.out.println(parse);
    
            SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            Date date = sf.parse(str2);
            System.out.println(date);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    Calendar

    Date类中很多方法都过时了,而Calendar类的功能比Date强大很多,所以Java官方推荐使用Calendar来替换Date的使用。

    Calendar类创建对象

    Calender是一个抽象类,不能直接创建对象,需要通过静态的 getInstance() 方法创建子类对象。

    练习

    get

    public static void main(String[] args) {
            //创建对象
            Calendar calendar = Calendar.getInstance();
    
            //获取时间 get
            int year = calendar.get(Calendar.YEAR);
            //月份是0-11,所以要加1
            int month = calendar.get(Calendar.MONTH)+1;
            int day = calendar.get(Calendar.DATE);
    
            //12小时制
            //calendar.get(Calendar.HOUR);
            //24小时制
            int hour = calendar.get(Calendar.HOUR_OF_DAY);
    
            //外国是周日到周六
            int week = calendar.get(Calendar.DAY_OF_WEEK);
            //定义一个数组来解决
            String[] w = {"周日","周一","周二","周三","周四","周五","周六"};
            String s = w[week - 1];
            System.out.println(s);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    set

    set(int field,int value)

    set(int year ,int month, int date)

    add

    		//7天之后的日期
            calendar.add(Calendar.DATE,7);
    
    • 1
    • 2

    最后

    如果你对本文有疑问,你可以在文章下方对我留言,敬请指正,对于每个留言我都会认真查看。

  • 相关阅读:
    QML (控件位置布局):锚布局详解
    【必坑指南】Windows 下基于 conda 安装 superset
    面试中常用消息中间件对比
    为什么我学了 6 个月 Python,还是找不到工作?
    14:00面试,14:06就出来了,问的问题过于变态了。。。
    51单片机+SIM800C(GSM模块)实现短信发送功能
    个人笔记--python用tanh画圆形,正方形,长方形(epsilon界面宽度)
    干货!英语常用口语1000句大全(完整版)!
    flink以增量+全量的方式更新广播状态
    66页三级医院智慧医院 信息化建设规划
  • 原文地址:https://blog.csdn.net/weixin_47543906/article/details/127663610