Java教程

java包装类

本文主要是介绍java包装类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

 1.Integer

2.Double

3.自动装箱和自动拆箱

4.BigDecimal 常用来解决精确地浮点数运算不精确地问题

5.舍入方式


在这里插入图片描述

 1.Integer

1.创建对象
        new Integer(1);
        Integer.valueOf(1);
Integer类中包含256个缓冲对象,范围-128-127
使用valueOf()时,如果是指定范围的值,直接访问缓存对象不新建,如果指定范围外的值,直接新建对象

常见方法:[static int] parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析

2.Double

1.创建对象
        new Double(3.14);
        Double.valueOf(3.14);
两种没区别

常见方法:Double.parseDouble();

System.out.println(i1.parseInt("800")+8);//808->int+int
System.out.println(d1.parseDouble("2.2")+3.1);//5.300000000000001->double+double

3.自动装箱和自动拆箱

1.自动装箱:把基本类型包装成对应的包装类型的过程
Integer a=5  a是引用类型,引用了包装对象的地址
编译器会完成对象的自动装箱: Integer a=Integer.valueOf(5);

2.自动拆箱:从包装类型的值,自动变成基本类型的值
int i=a;  a现在是包装类型,没法给变量赋值,需要把5取出来
编译器会完成自动拆箱:int i=a.intValue();

4.BigDecimal 常用来解决精确地浮点数运算不精确地问题

1.创建对象
   BigDecimal(double val)
        将double转换为BigDecimal,后者是double的二进制浮点值十进制表示形式。
        还会出现不精确地问题

   BigDecimal(String val)
        将String类型字符串的形式转换为BigDecimal

2.常用方法

Add(BigDecimal bd) : 做加法运算
Subtract(BigDecimal bd) : 做减法运算
Multiply(BigDecimal bd) : 做乘法运算
Divide(BigDecimal bd) : 做除法运算,除不尽时会抛异常
Divide(BigDecimal bd,保留位数,舍入方式) : 除不尽时使用
setScale(保留位数,舍入方式) : 同上
pow(int n) : 求数据的几次幂

        //2.创建工具类对象,把基本类型a和b交给工具类对象BigDecimal来保存
        /*1.最好不要用double作为构造函数的参数,不然还会有不精确的现象*/
        /*2.最好使用重载的,参数类型是String的构造函数
        * double转String,直接拼个空串就可以*/
        BigDecimal bd1 = new BigDecimal(a+"");
        BigDecimal bd2 = new BigDecimal(b+"");
        BigDecimal bd3;
        //3.2 Add(BigDecimal bd) : 做加法运算
        bd3 = bd1.add(bd2);
        System.out.println(bd3);
        //3.3 Subtract(BigDecimal bd) : 做减法运算
        bd3 = bd1.subtract(bd2);
        System.out.println(bd3);
        //3.4 Multiply(BigDecimal bd) : 做乘法运算
        bd3 = bd1.multiply(bd2);
        System.out.println(bd3);
        //3.5 Divide(BigDecimal bd) : 做除法运算,除不尽时会抛异常
        /*3.除法运算,除不尽时会抛出异常ArithmeticException*/
        //方案一:(除不尽时有问题)
        //bd3 = bd1.divide(bd2);
        /*divide(m,n,o)
        m是要除以哪个对象,n指要保留几位,o指舍入方式(比如四舍五入)*/
        //方案二:
        bd3 = bd1.divide(bd2,3,BigDecimal.ROUND_HALF_UP);
        System.out.println(bd3);

5.舍入方式

ROUND_HALF_UP 四舍五入,五入 如:4.4结果是4; 4.5结果是5
ROUND_HALF_DOWN 五舍六入,五不入 如:4.5结果是4; 4.6结果是5
ROUND_HALF_EVEN 公平舍入(银行常用)
比如:在5和6之间,靠近5就舍弃成5,靠近6就进位成6,如果是5.5,就找偶数,变成6
ROUND_UP 直接进位,不算0.1还是0.9,都进位
ROUND_DOWN 直接舍弃,不算0.1还是0.9,都舍弃
ROUND_CEILING(天花板) 向上取整,取实际值的大值
朝正无穷方向round 如果为正数,行为和round_up一样,如果为负数,行为和round_down一样
ROUND_FLOOR(地板) 向下取整,取实际值的小值
朝负无穷方向round 如果为正数,行为和round_down一样,如果为负数,行为和round_up一样

这篇关于java包装类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!