JAVA-02 数据类型

 

        前言:时隔六年,再次来到了CSDN,从心回顾了这些年的技术旅程,时光蹉跎,丢了青丝,白了头发,当初的少年已经没了锋利的棱角。为了保持技术的严谨性,如有错误,烦请诸君指正。

1:什么是数据类型

        在计算机科学和计算机编程中,数据类型或简单的类型是数据的一个属性,它告诉编译器或解释器程序员打算如何使用数据。大多数编程语言支持整数(大小不同)、浮点数(近似实数)、字符和布尔值的基本数据类型。数据类型约束表达式的值,例如变量或函数,可能需要。此数据类型定义了可以对数据执行的操作、数据的含义以及存储该类型值的方式。数据类型提供一组值,表达式(即变量、函数等)可以从中获取其值。

2: java基础数据类型

        整数类型:byte、short、int、long。

        小数类型:float、double。

        字符类型:char。

        布尔类型:boolean 

在代码中利用封装类查看基础数据类型的最大与最小:

    public static void main(String[] args) {
        System.out.println("int最大:" + Integer.MAX_VALUE);
        System.out.println("int最小:" + Integer.MIN_VALUE);
        System.out.println("short最大:" + Short.MAX_VALUE);
        System.out.println("short最小:" + Short.MIN_VALUE);
        System.out.println("long最大:" + Long.MAX_VALUE);
        System.out.println("long最小:" + Long.MIN_VALUE);
        System.out.println("byte最大:" + Byte.MAX_VALUE);
        System.out.println("byte最小:" + Byte.MIN_VALUE);
        System.out.println("float最大:" + Float.MAX_VALUE);
        System.out.println("float最小:" + Float.MIN_VALUE);
        System.out.println("double最大:" + Double.MAX_VALUE);
        System.out.println("double最小:" + Double.MIN_VALUE);
    }

总觉得自己写代码去看才能发现最真实的东西,所以自己去看吧,关于最大值最小值以及占用字节的计算。

        字节长度计算案例

Integer.toBinaryString(Integer.valueOf(Integer.MAX_VALUE)).length()+1)
Long.toBinaryString(Double.doubleToRawLongBits(Double.MAX_VALUE)).length()+1)
Integer.toBinaryString(Float.floatToIntBits(Float.MAX_VALUE)).length()+1)

 3: 包装数据类型

        在java中,基础数据类型不需要实例化就可以使用。而包装数据类型,实际是一个类,在java.lang 包下。需要实例化才可以使用。

        这时候有人会问:"在程序中,我们可以使用Integer a = 1;  去定义一个变量",这期间并没有产生一个新的实例化对象。

        其实啊,类的调用,除静态方法外,都是需要实例化的,为什么Integer 不需要呢?因为他特殊吗?不是的,在jvm中,存在一种机制,叫自动拆箱与自动装箱。

       自动装箱就是java编译器在基本数据类型和对应的对象包装类型之间做一个转化,比如int转为Integer,double转为Double.反之为自动拆箱。有个这一层机制,我们就可以浅显的认定 在值域层,int 是等于 Integer的。

        但是还是有区别的

        在默认层中,integer默认为null,而int默认为0

        在jvm中,integer实际是对象的引用,当new出一个integer时实际上是生成一个指针指向此对象,而int则是直接存储数据值。

        当然 上面也说另外两种区别。int是基本类型,integer是包装类型,integer必须实例化后才能使用,而int变量不需要。

        附表,包装类型表。

类型包装类型
intInteger
byteByte
shortShort
longLong
floatFloat
doubleDouble
char

Char

booleanBoolean

4: 其他数据类型 

        BigInteger bigInteger = new BigInteger("1");
        BigDecimal bigDecimal = new BigDecimal("1.0");

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清酒浊夜色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值