美文网首页
基本数据类型和其包装类

基本数据类型和其包装类

作者: luoqiang108 | 来源:发表于2018-02-28 17:19 被阅读0次

包装类概述

  • 用于将基本类型数据(内存中保存的是数据)当做引用类型看待。
  • Java语音的8中基本类型分别对应了8中“包装类”,每一种包装类都封装了一个对应的基本类型成员变量,同时还提供了一些针对该数据类型的实用方法。
包装类 对应的基本类型
java.lang.Integer int
java.lang.Long long
java.lang.Double double
java.lang.Character char
java.lang.Boolean boolean
java.lang.Byte byte
java.lang.Float float
java.lang.Short short
/**
 * 八大基本数据类型的包装类
 */
public class ElementaryDataType {
    //八大基本数据类型默认值
    byte bt;//0
    short s;//0
    int i;//0
    long l;//0
    float f;//0.0f
    double d;//0.0d
    char c;//\u0000(无符号0字符)
    boolean b;//false
    Integer integer;//其余引用类型初始值为null
    public static void main(String[] args) {
        int i = 1;//基本类型,不是Object子类!
        //在java里面,整数默认类型是整型(int),而小数的默认类型是双精度浮点型(double);
        float f = 1.2f;//表示一个float类型要在后面加f,否则小数默认表示的是double,需要强转才能赋值给float
        /**
         * 实例化一个对象,该对象代表整数1
         * Integer的作用是让基本数据类型int作为一个引用类型看待。
         * 这样就可以参与到面向对象的编程方式了。
         * 由此我们可以将一个int当做一个Object去看待了。
         * 这种从基本类型转变为引用类型的过程称之为“装箱”。反之叫“拆箱”。
         * 在java的jdk1.5后会进行自动的拆装箱
         */
        Integer integer = new Integer(1);
        //拆箱方法
        int a = integer.intValue();
        Double d = new Double(2.2);//装箱
        d = Double.valueOf(2.2);//装箱
        double b=d.doubleValue();//拆箱
        //自动装箱
        d = 2.2;
        //自动拆箱
        b = d;
        //包装类的一些常用功能
        /*
        * 包装类可以将描述该类型数据的字符串转换为对应的数据类型
        */
        String numStr= "123";
        /*
        * 包装类都可以将字符串转换为其类型
        * 方法是:parseXXX   XXX代表其类型
        * 这里要特别注意!一定要保证待转换的字符串描述的确实是
        * 或者兼容要转换的数据类型!否则会抛异常。
        */
        int num = Integer.parseInt(numStr);
        long longNum = Long.parseLong(numStr);
        double doubleNum = Double.parseDouble(numStr);
        System.out.println(num+longNum+doubleNum);//369.0
        /*
        * Integer为我们提供了几个有趣的方法
        * 将一个整数转换为2进制形式并以字符串返回
        *  * 将一个整数转换为16进制的形式并以字符串返回
        */
        String bStr = Integer.toBinaryString(num);//转换为2进制
        String hStr = Integer.toHexString(num);//转换为16进制
        System.out.println(bStr);//1111011
        System.out.println(hStr);//7b
        /*
        * 所有包装类具有几个共通的常量
        */
        int max = Integer.MAX_VALUE;//获取int最大值
        int min = Integer.MIN_VALUE;//获取int最小值
        double dMax = Double.MAX_VALUE;
        double dMin = Double.MIN_VALUE;
        System.out.println(max);//2147483647
        System.out.println(min);//-2147483648
        System.out.println(dMax);//1.7976931348623157E308
        System.out.println(dMin);//4.9E-324
    }
}

BigDecimal类

表示精度更高的浮点型

import java.math.BigDecimal;
/**
 * BigDecimal类
 * 该类可以进行更高精度的浮点运算
 */
public class BigDecimalTest {
    public static void main(String[] args) {
        /*
        * 创建一个BigDecimal实例,可以使用构造方法
        * BigDecimal(String numberFormatString)
        * 用字符串描述一个浮点数作为参数传入(理论上字符串可以无限长,可以不丢表示高精度浮点型数据)
        */
        BigDecimal num1 = new BigDecimal("3.0");
        BigDecimal num2 = new BigDecimal("2.9");
        /**
         * BigDecimal可以做加减乘除等运算
         * add:加法
         * multiply:乘法
         * 这里要注意除法(除不尽的时候):
         * 所以,对于除法而言,,我们要制定取舍模式,
         * 否则会一直计算下去,直到内存溢出报错。
         */
        BigDecimal result = num1.subtract(num2);//num1-num2
        System.out.println(result);//0.1
        //保留给定精度位数后四舍五入
        result = num1.divide(num2,8,BigDecimal.ROUND_HALF_UP);
        System.out.println(result);//1.03448276
        /**
         * 这里需要注意,BigDecimal可以描述比Double还要高的精度
         * 所有在转换为基本类型时,可能会丢失精度!
         */
        int i = result.intValue();
        System.out.println(i);//0
        float f = result.floatValue();
        System.out.println(f);//0.1
    }
}

BigInteger类

可以保存更长位数的整数

import java.math.BigInteger;
/**
 * BigInteger类
 * 该类可以保存更长位数的整数
 * 理论上:BigInteger存放的整数只受内存容量影响,有容乃大。
 */
public class BigIntegerTest {
    public static void main(String[] args) {
        /**
         * BigInteger同样支持使用描述更长位数的整数的字符串来
         * 创建BigInteger
         */
        BigInteger num = new BigInteger("1");
        /**
         * 这种方式我们可以将一个整数的基本类型转换为BigInteger的实例
         */
        num = BigInteger.valueOf(1);
        /**
         * BigIntegert同样支持加减乘除方法
         * 200的阶乘
         */
        for (int i = 1; i < 200; i++) {
            num = num.multiply(BigInteger.valueOf(i));
        }
        System.out.println(num);//3943289336823952517761816069660925311475679888435866316473712666221797249817016714601521420059923119520886060694598194151288213951213185525309633124764149655567314286353816586186984944719612228107258321201270166459320656137141474266387621212037869516201606287027897843301130159520851620311758504293980894611113948118519486873600000000000000000000000000000000000000000000000
    }
}

相关文章

  • Java 常用类 04. Java 包装类

    包装类 Java 数据类型分为:基本数据类型 和 引用数据类型,但基本数据类型怎么成为对象呢? 包装类:基本数据类...

  • Java包装类

    包装类 装箱:把基本数据类型转换成包装类 拆箱:把包装类转换成基本数据类型 基本数据类型和字符串之间的转换

  • 第47节:Java当中的基本类型包装类

    Java当中的基本类型包装类 01 基本数据类型对象的包装类 什么是基本数据类型对象包装类呢?就是把基本数据类型封...

  • 基本数据类型对象包装类

    基本数据类型对象包装类。 基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间做转换 基本数据...

  • Java-装箱拆箱

    包装类(Wrapper Class) 八个和基本数据类型对应的类统称为包装类(Wrapper Class) 包装类...

  • 第三章②包装类

    包装类:八种基本数据类型对应着一个类,此类即为包装类。 基本数据类型、包装类、string之间的相互转换 把基本数...

  • Java基础知识(二)基础数据类型

    Number包装类 包装类基本数据类型BooleanbooleanBytebyteShortshortIntege...

  • 30.包装类

    包装类 包装类即8种基本数据类型对应的引用类型基本数据类型引用数据类型byteByteshortShortintI...

  • 基本数据类型和其包装类

    包装类概述 用于将基本类型数据(内存中保存的是数据)当做引用类型看待。 Java语音的8中基本类型分别对应了8中“...

  • Java的数据类型

    一、Java数据类型分为基本数据类型与引用数据类型。 二、基本数据类型 三、基本数据和包装类的区别 四、基本数据类...

网友评论

      本文标题:基本数据类型和其包装类

      本文链接:https://www.haomeiwen.com/subject/doobxftx.html