Java核心类----包装类

包装类

包装类----Number及封装拆箱

* byte             Byte
 * short            Short
 * int              Integer
 * long             Long
 * float            Float
 * double           Double
 * char             Character
 * boolean          Boolean
 *
 * 数字 代表 数字的包装类 对应的父类是 Number
 * Number 是Byte,Short,Integer,Long,Float,Double 的父类
 *
 * 是一个抽象类、里面提供了将 包装类 转成 基本数据类型 的 方法
 * 分别是
 *      byteValue()
 *      shortValue()
 *      integerValue()
 *      longValue()
 *      floatValue()
 *      doubleValue()
 *
 * 将 包装类 转成 基本数据类型 ,这个过程称为 拆箱
 *
 * 基本数据类型 转成 包装类 的过程 称为 封箱
 *
 * 包装类 是引用数据类型

在这里插入图片描述

包装类----Integer常见方法

实现接口
Implemented Interfaces:
Serializable Comparable Integer

属性
  • MAX_VALUE 最大值
  • MIN_VALUE 最小值
构造方法
  • Integer(int value)
    int 转 integer
  • Integer(String s)
    数字组成的字符串转成数字
方法
  • compare(int x, int y)
    比较两 int值的数值。 静态方法static int 通过类调用
  • compareTo(Integer anotherInteger)
    比较两 Integer对象数值。
  • equals(Object obj)
    将此对象与指定的对象进行比较。 (不能用 == ,引用数据类型==比较的是地址)
  • parseInt(String s)
    将字符串参数作为带符号的十进制整数。
  • parseInt(String s, int radix)
    将字符串参数作为一个符号整数,进制由第二个参数指定。
  • toBinaryString(int i)
    在基地 2无符号整数返回整数参数的字符串表示形式。
  • toHexString(int i)
    在基地 16无符号整数返回整数参数的字符串表示形式。
  • toOctalString(int i)
    在基地 8无符号整数返回整数参数的字符串表示形式。
  • valueOf(int i)
    返回一个 Integer实例表示指定的 int价值。
  • valueOf(String s)
    返回一个 Integer对象转成 数字
  • valueOf(String s, int radix)
    返回一个 字符串 转成 radix 进制
		Integer a = new Integer("311");
        System.out.println(a);
        
        Integer b = new Integer("311");
        
        // 双等号 比较基本数据类型,代表比较两个数的值
        // 比较引用数据类型,代表比较地址是否相等
        System.out.println(a == b);
        System.out.println(a.equals(b));
        System.out.println(Objects.equals(a,b));
        
        //结果大于0 ,前者比后者大,=0 相等
        System.out.println(a.compareTo(b));
        System.out.println(Integer.compare(a,b));
        
        //转成基本数据类型
        System.out.println(a.floatValue());
  • 进行算术运算的时候,仍旧遵循算术运算的方式

包装类----自动封箱和拆箱

 		//自动封箱:程序会自动将 int 类型 通过 Integer.valueof() 转化成 Integer
        Integer c = 300;
        //自动拆箱:程序会自动将 Integer 类型 通过 intValue() 转成 int 类型
        int d = c + 100;
		 *      Integer x =30  发生了自动封箱操作,
         *      会自动调用 Integer.valueOf(i) 方法
         *          如果 i 的值 在 -128-127 之间(包含开始和结束)
         *          那么会从 IntegerCache.cache 数组中获取对应的值
         *      IntegerCache.cache 是一个静态的数组,被所有的对象共享
         *
         *      那么此时 如果 i 相等,则用 == 和 equals 比较得到的结果狗屎true
         *
         *      如果 i 的值 不在 -128-127 之间,那么会自动通过 new Integer()构建一个包装类
         *      
         *      那么 == 比较的会返回 false,(每次 new 产生的狗屎不同的对象)
         *      
         *      如果 要比较两个包装类的值 是否相等,则必须通过 equals 方法进行比较
         *  
         *  只要是 引用数据类型,比较内容只能用 equals

包装类的默认值问题

引用数据类型的默认值是 空
包装类的默认值是 null

BigInteger 大整数

算术运算

  • add(BigInteger) 加
  • subtract(BigInteger) 减
  • multiply(BigInteger) 乘
  • divide(BigInteger) 除
  • mod(BigInteger) 余数
  • divideAndRemainder(BigInteger)
    计算商和余数、返回一个数组
  • new BigInteger(strNum)
    传入 10进制 格式的 字符串数字
  • new BigInteger(strNum , radix)
    传入 指定 进制 格式的 字符串数据

BigDecimal 处理小数

  • new BigDecimal(strNum)
  • scale()
    返回 几位 小数
  • precision()
    返回 有效数字 个数
  • setScale(n, RoundingMode)
    设置保留几位小数
  • ROUND_UNNECESSARY (默认)
    保留 n 位小数, n位之后必须都为0 ,否则报错
  • UP
    绝对值 向上取整
  • DOWN (常用)
    直接截断
  • HALF_UP(常用)
    四舍五入 相当于 math.random
  • FLOOR
    四舍五入 向下 取整
  • CEILING
    相当于 math.ceil的方法
  • HALF_DOWN
    如果 大于 0.5 , 则 舍入, 否则 舍弃
  • stripTrailingZeros()
    截取 小数点 尾部 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值