当初学习计算机的时候,教科书中对程序的定义是:程序=数据结构+算法,Java基础系列第一篇就聊聊Java中的数据类型。
本篇聊Java数据类型主要包括两个内容:
Java的基本数据类型总共有8种,包括三类:数值型,字符型,布尔型,其中
字符类型在内存中占有2个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把这些字符当成不同的整数来看待,即ASKII码,因此,严格来说,字符类型也算是整数类型的一种。
Java的这8种基本类型的大小,即所占用的存储字节数,以及可以表示的数据范围如下表所示:
Java是强类型的编程语言,其数据类型在定义时就已经确定了,因此不能随意转换成其他的数据类型,但是Java允许将一种类型赋值给另一种类型。
在Java中,boolean类型与其他7种类型的数据都不能进行转换,这一点很明确。
但对于其他7种数据类型,它们之间都可以进行转换,只是可能会存在精度损失或其他一些变化。转换分为自动转换和强制转换:
自动类型转换需要满足如下两个条件:
如果将6种数值类型作如下排序:
double > float > long > int > short > byte
那么从小转换到大,那么可以直接转换,而从大到小,或char或其他6种数据类型转换,则必须使用强制转换,且可能会发生精度损失。
在某些场景下,比如在Restful API接口中,如果在dto中使用了基本类型的参数,那么即使请求体中没有传该参数,服务器在做反序列化的时候也会将该参数以默认值来处理。所以在实际开发的dto中务必不要使用基本类型。
以下是Java基本数据类型的默认值:
对于上面的8种基本类型,Java都有对应的封装类型:
基本类型 | byte | int | short | float | double | long | boolean | char |
---|---|---|---|---|---|---|---|---|
封装类型 | Byte | Integer | Short | Float | Double | Long | Boolean | Character |
Java封装类型与基本类型相比,有如下区别:
下一篇,将介绍Java类型中的自动拆箱与封箱,以及缓存机制。