第五章API(3)

学习目标:

掌握API相关知识

学习内容:

1、 System类 2、 Date类和Calendar类 3、 SimpleDateFormat类 4、 BigInteger 5、 BigDecimal

学习时间:

2021年5月23日

学习产出:

提示:这里统计学习计划的总量
例如:
1、 技术笔记 1 遍
2、CSDN 技术博客 1 篇

System类

最常用到的就是out,其中out是PrintStream类的属性System类继承PrintStream类

        //PrintStream out
        //            out.println();
         System.out.println("11");

同理 ,这是一种类的继承,Person类继承Phone类

public class Pserson {
     static Phone phone;
}
public class Phone {
    static String  no;
}
public static void main(String[] args) {
    System.out.println(Pserson.phone.no);
}

System 里面包含了一些对于系统信息相关的方法

        System.exit(0);//退出,停止虚拟机

        long a = System.currentTimeMillis();//1621735853158  自1970-1-1 0:0:0 至 程序运行时那一刻的时间差
        for (int i = 0; i < 1000000; i++) {
            System.out.println(i);
        }
        System.out.println(System.currentTimeMillis()-a);//计算出程序运行的时间差

        System.out.println(System.getenv());
        System.out.println(System.getenv("Path"));//系统的环境变量

两种复制到数组

第一种Arrays方法

        int [] a = {1,2,3,4,5};
        int[] ints = Arrays.copyOf(a, 10);//返回一个指定长度的新数组,把原数组的值填充进去
        System.out.println(Arrays.toString(ints));

第二种System方法

        int [] a = {1,2,3,4,5};
        int [] b = new int[10];
           /*
              src 原数组
              srcpos 原数组的起点
              dest 目标数组
              destpos 目标数组起点
              length 要复制的数量
            */
         System.arraycopy(a, 0, b, 4, a.length);
         System.out.println(Arrays.toString(b));

Date类和Calendar类

使用Date类代表当前系统时间

Date d = new Date(); 
Date d = new Date(long d);
        Date date = new Date();// 创建一个日期对象,里面包含程序运行时那一刻的时间
        System.out.println(date.getYear()+1900);//获得年   过期方法  可以使用  只是官方不推荐
        System.out.println(date.getMonth()+1); // 0开始
        System.out.println(date.getDate());  //月中的第几天
        System.out.println(date.getDay()); //周中的第0天      从0开始 0-星期天
        System.out.println(date.getHours());
        System.out.println(date.getMinutes());
        System.out.println(date.getSeconds());
        System.out.println(date.getTime());
Date date = new Date(1621735853158L);
        date.setMonth(7);
        System.out.println(date.getMonth()+1);
        System.out.println(date.getHours());
        System.out.println(date.getMinutes());
        System.out.println(date.getSeconds());
        System.out.println(date); //Sun May 23 10:10:53 CST 2021
        System.out.println(date.toLocaleString());     //根据本地区习惯输出一个字符串格式的时间

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建

对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

Calendar c1 = Calendar.getInstance();
        //Calendar是抽象类 不能创建对象
        //Calendar c = Calendar.getInstance();//返回的是子类对象
        Calendar c = new GregorianCalendar();//直接new子类对象

        //c.set(2002, 5, 10);
        //System.out.println(c.getTime());

        System.out.println(c.get(Calendar.YEAR));
        System.out.println(c.get(Calendar.MONTH)+1);
        System.out.println(c.get(Calendar.DAY_OF_MONTH));
        System.out.println(c.get(Calendar.DAY_OF_WEEK));
        System.out.println(c.get(Calendar.DAY_OF_YEAR));

SimpleDateFormat类

SimpleDateFormat是日期格式化类

Date的输出格式

Date d = new Date();
        System.out.println(d);//d.toString() Sun May 23 11:47:28 CST 2021
        System.out.println(d.toLocaleString());//2021-5-26 19:55:56

SimpleDateFormat的输出格式

    //日期格式化--把java中的对象型(new Date()  Calendar ) 转为指定格式的字符
        Date a = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SSS E");
        String str =  simpleDateFormat.format(a);
        System.out.println(str);

        //日期格式化--把字符串转为日期对象
        String birthday = "1999-10-10";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date d = simpleDateFormat.parse(birthday);
            System.out.println(d.getYear()+1900);
            System.out.println(d.getTime());
        } catch (ParseException e) {
            e.printStackTrace();
        }

BigInteger

BigInteger类型的数字范围较Integer,Long类型的数字范围要大得多,它支持任意精度的整数,也就是说在运算中 BigInteger 类型可以准确地表示任何大小的整数值而不会丢失任何信息。

         /*
          BigInteger 大整数  可以表示任意的整数
          基本运算方法
          加减乘除
          add(),subtract(),multiply(),divide()
         */
        BigInteger a  = new BigInteger("1111111111111111111111111111111112222222222222222222222222211111111111111111");
        BigInteger b  = new BigInteger("111111111111111111111111111111111112222222222222222222222222111111111111119");

        BigInteger  c = a.add(b);
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

BigDecimal

在计算机中不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。

        /*double d = 10.5;
          System.out.println(10.5-10.4);//10.5-10.4<0.1*/
        BigDecimal a = new BigDecimal("1222222222222222222233333333333333333333333333333333222222222222222.5");
        BigDecimal b = new BigDecimal("12.4");
        System.out.println(a.subtract(b));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值