JAVA包装类、BigDecimal类、BigInteger类

一、包装类:包装类的作用是让基本类型数据以对象的形式存在和使用,使得基本类型也可以以面向对象的思想进行开发。
包装类和基本类型对应关系:
      基本类型                 包装类
          int                   java.lang.Integer
         char                 java.lang.Character
         byte                 java.lang.Byte
         short                java.lang.Short
         long                 java.lang.Long
        double              java.lang.Double
         float                  java.lang.Float
        boolean            java.lang.Boolean

包装类一些常用的变量和方法:
 常量:MAX_VALUE:最大值,int最大值+1变成int最小值
             MIN_VALUE:  最小值,int最小值-1变成int最大值
方法:int intValue();   拆箱
            Integer valueOf(int a);装箱
            parseXXX(String str),将字符串表示的基本数据类型内容转换为这个基本类型数据,转换之前一定要确保字符串是基本数据类型兼容的数据,否则会转换异常报错numberformatException。
           将一个数字变成字符串有两种方法:
                                                              4+"";
                                                              Integer.valueOf(4).toString();
Integer的两个方法:
 可以将数字以2进制字符串的形式返回      Integer.toBinaryString(int n);
 可以将数字以16进制字符串的形式返回    Integer.toHexString(int n);

public class Demo {
  private static Object[] arrays = new Object[10];
  private static int index = 0;
  public static void add(Object obj){
   if(index<arrays.length){

 arrays[index++] = obj;
   }
  }
  public static void main(String[] args){
   String name = "hello";
   add(name);
   //使用包装类,可以使用add方法了
   Integer a = new Integer(10);//从基本数据类型到引用类型的过程叫“装箱”
   add(a);
   int c = a.intValue();//从引用数据类型到基本数据类型的过程叫“拆箱”,拆箱方法为XXXValue(),xxx是引用类型所 代表的基本类型名
  //在java1.5版本以后,推出了自动拆装箱,编译器在编译期做的预处理工作。基本类型和引用类型可以直接的相互赋值

   int b= 10;
   Integer d =10;//它这里的自动装箱并不是new Integer(10),而是使用Integer.valueOf(10)这种方法装箱,这种方法效 率高点
   int f = d;
   add(b);
   System.out.println(Integer.MAX_VALUE);
   String numStr = "456";
   int i = Integer.parseInt(numStr);
   i+=1;
   String str = i+"";//string str = Integer.valueOf(i).toString();
  }
}

二、BigDeciaml类:
java在计算浮点类型时会有舍入误差,java.math.BigDecimal类可以用于计算和描述非常精确的浮点数。
构造方法:BigDecimal(String num)
支持常用的加减乘除运算。
当我们对计算有严格要求时会使用该类,不过在正常开发中double一般都能满足我们的需求。

 public class TestBigDecimal {
  public static void main(String[] args){
   BigDecimal d1 = new BigDecimal("3.0");
   BigDecimal d2 = new BigDecimal("2.9");
   BigDecimal d3 = d1.subtract(d2);//减法运算
   System.out.println(d3);//0.1
  /*
   * add
   * subtract
   * multiply
   * divide除法,要使用舍入原则,否则当遇到无线小数时,会一直除到溢出
   * BigDecimal.ROUND_HALF_UP    四舍五入
   */
   BigDecimal d4 = d1.divide(d2,10,BigDecimal.ROUND_HALF_UP);
   System.out.println(d4);//1.0344827586
  }
}

三、BigInteger类:

 java提供的整型中int long 都是有范围的。我们可以使用BigInteger 表示一个范围更大的数字,理论上该值的最大值与内存有关。它也支持加减乘除,和BigDecimal的方法一样使用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值