【Java常识】11.0 System类、BigInteger类、BigDecimal类、Date类

1.0 System类

包括正确输入流、输出流、错误输出流。

package edp.com.learn1;

public class Demo {

    public static void main(String[] args) {
//      demo1();
//      demo2();
//      demo3();
//      demo4();
    }

    public static void demo4() {
        int[] src = {11,22,33,44,55};
        int[] dest = new int[8];
        for (int i = 0; i < dest.length; i++) {
            System.out.print(dest[i]+" ");
            
        }
        System.out.println("\n--------------------");
        System.arraycopy(src, 0, dest, 0, src.length);//很方便的帮我们拷贝数组
        for (int i = 0; i < dest.length; i++) {
            System.out.print(dest[i]+" ");
        }
    }

    public static void demo3() {
        long start = System.currentTimeMillis();
        for (int i = 0; i <100000; i++) {
            System.out.println("*");
        }
        //获取当前时间的毫秒值
        long end = System.currentTimeMillis();
        long time = end-start;
        
        System.out.println(time+"毫秒");//1秒==1000毫秒
    }

    public static void demo2() {
        //非0状态是异常终止,退出JVM
        System.exit(0);
        System.out.println("111111");
    }

    public static void demo1() {
        for (int i = 0; i < 100; i++) {
            new Demo_Sys();
        }
        //运行垃圾回收器,相当于呼喊保洁阿姨
        System.gc();
    }

}
class Demo_Sys {
    //在一个源文件中不允许定义两个用public修饰的类,会抢占公共的资源
    @Override
    protected void finalize() {
        System.out.println("垃圾被清扫了。");
    }
}

执行结果为:

16102290-e8628b36b5817e62.png
image.png
2.0 BigInteger类

可以让超过Integer范围内的数据进行运算。一般在金融、证券、财务类的开发中会用到BigInteger类。用法如下:

package edp.com.learn1;

import java.math.BigInteger;

public class Demo {

    public static void main(String[] args) {
//      long num = 123456789098765432123L;
//      String string = " 123456789098765432123";
        BigInteger bi1 = new BigInteger("100");
        BigInteger bi2 = new BigInteger("2");
        
        System.out.println(bi1.add(bi2));   //+
        System.out.println(bi1.subtract(bi2));  //-
        System.out.println(bi1.multiply(bi2));  //乘
        System.out.println(bi1.divide(bi2));//除
        
        System.out.println("--------------------------");
        BigInteger[] arr = bi1.divideAndRemainder(bi2);//取除数和余数
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        
    }
}

执行结果:


16102290-ae12071755058062.png
image.png
3.0 BigDecimal类

更精确地存储小数。

package edp.com.learn1;

import java.math.BigDecimal;
import java.math.BigInteger;

public class Demo {

    public static void main(String[] args) {
        //计算机存储小数,不能直接存储,只能存储近似值,总有精度损失
        System.out.println(2.0-1.1);
        //这种方式在开发中不推荐,因为还不够精确
        BigDecimal bd1 = new BigDecimal(2.0);
        BigDecimal bd2 = new BigDecimal(1.1);
        System.out.println(bd1.subtract(bd2));
        
        //通过构造中传入字符串的方式,开发时推荐
        BigDecimal bd3 = new BigDecimal("2.0");
        BigDecimal bd4 = new BigDecimal("1.1");
        System.out.println(bd3.subtract(bd4));
        
        //这种方式在开发中也推荐
        BigDecimal bd5 =BigDecimal.valueOf(2.0);
        BigDecimal bd6 = BigDecimal.valueOf(1.1);
        System.out.println(bd5.subtract(bd6));
    }
}

执行结果:


16102290-252d181e45435a6e.png
image.png
4.0 未完待续
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值