BigDecimal和System

BigDecimal 和 BigInteger 和 System

package com.sq.systemTest;

import org.junit.Test;

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

/*
    其他常用类的使用
    1.System: 系统类,系统级的很多属性和控制方法都放置在该类的内部。
              该类位于java.lang包。
              构造器为 private,所以无法创建该类的对象,也就是无法实例化该类。
              其内部的成员变量和成员方法都是 static 的,所以也方便调用。
              成员变量:包含 in、out 和 err 三个成员变量,分别代表标准输入流(键盘输入流),
                      标准输出流(显示器)和标准错误输出流(显示器)
              成员方法:
                      native long currentTimeMillis():
                        该方法的作用时返回当前的计算机时间,
                        时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1日0时0分0秒所差的毫秒数。

                      void exit(int status):
                        该方法的作用是退出程序。其中 status 的值为0代表正常退出,非零代表异常退出。
                        使用该方法可以在图形界面编程中实现程序的退出功能等。

                      void gc();
                        该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,
                        则取决于系统中垃圾回收算法的实现以及系统执行时的情况。

                      String getProperty(String key):
                        该方法的作用是获得系统中属性名为 key 的属性对应的值。系统中常见的属性名以及属性的作用如下表所示
                                属性名                     属性说明
                                java.version              Java运行时环境版本
                                java.home                 Java安装目录
                                os.name                   操作系统的名称
                                os.version                操作系统偶的版本
                                user.name                 用户的账户名称
                                user.home                 用户的主目录
                                user.dir                  用户的当前工作目录

    2.Math
    3.BigInteger 和 BigDecimal
        BigInteger:
            > java.math包的 ** BigInteger 可以表示不可变的任意精度的整数 ** 。BigInteger提供所有 Java的基本整数操作符的对应物,
              并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模运算、GCD 计算,指数测试、素数生成、
              位操作以及一些其他操作。
            > 构造器
              BigInteger(String val):根据字符串构建 BigInteger 对象

        BigDecimal: 一般的 Float 类和 Double 类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,
                    故用到java.math.BigDecimal类
                    BigDecimal 类支持不可变的、任意精度的有符号十进制定点数。
            > 构造器
                public BigDecimal(double val)
                public BigDecimal(String val)
            > 常用方法
                public BigDecimal add(BigDecimal augend)
                public BigDecimal subtract(BigDecimal subtrahend)
                public BigDecimal multiply(BigDecimal multiplicand)
                public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
 */
public class OtherClassTest {

    @Test
    public void test1(){
        String javaVersion = System.getProperty("java.version");// java版本
        System.out.println("java的version:"+javaVersion);// java的version:1.8.0_111

        String javaHome = System.getProperty("java.home");// java路径
        System.out.println("java的home:"+javaHome);// java的home:C:\Java8\jdk1.8.0_111\jre

        String osName = System.getProperty("os.name");// 系统名称
        System.out.println("os的name:"+osName);// os的name:Windows 10

        String osVersion = System.getProperty("os.version");// 系统版本
        System.out.println("os的version:"+osVersion);// os的version:10.0

        String userName = System.getProperty("user.name");// 系统用户名
        System.out.println("user的name:"+userName);// user的name:21115

        String userHome = System.getProperty("user.home");// 当前系统用户名路径
        System.out.println("user的home:"+userHome);// user的home:C:\Users\21115

        String userDir = System.getProperty("user.idr");// 当前贡藕成路径哦
        System.out.println("user的dir:"+userDir);// user的dir:null
    }

    @Test
    public void test2(){
        BigInteger bi = new BigInteger("1243334536563636335353535353535555353535435241123");
        BigDecimal bd = new BigDecimal("12435.351");
        BigDecimal bd2 = new BigDecimal("11");
        System.out.println(bi);// 1243334536563636335353535353535555353535435241123
//        System.out.println(bd.divide(bd2));// 除不尽 报错
        System.out.println(bd.divide(bd2,BigDecimal.ROUND_HALF_UP));// 1130.486
        System.out.println(bd.divide(bd2,15,BigDecimal.ROUND_HALF_UP));// 1130.486454545454545
    }
}

上一篇:结构型模式——装饰者模式


下一篇:IDEA 这个小技巧太实用了。。