难度
初级
学习时间
30分钟
适合人群
零基础
开发语言
Java
开发环境
- JDK v11
- IntelliJ IDEA v2018.3
1.数据类型是什么?
数据是什么?比如像123、3.14、“你玩游戏吗?”,这些都是数据:
那么,它们的数据类型是什么?比如123是整数,3.14是小数,“你玩游戏吗?”是一句话。对应的它们的数据类型就是:
在计算机中,数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。比如说,你定义来了一个int类型的变量,你可以存1,也可以存2。
变量是用来存储值的所在处,它们有名字和数据类型。
变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。
在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。
前面我们学过变量,使用前得先声明,声明就得明确变量的类型,那么变量的类型可以有哪几种呢?
2.八大基本数据类型
在Java中有八大基本数据类型:
- byte
- short
- int
- long
- float
- double
- boolean
- char
将上面八种基本数据类型分类如下:
整数:byte、short、int、long
小数:float、double
真假:boolean
字符:char
下面我们依次来讲解它们。
3.byte
byte数据类型是8位有符号二进制补码整数,占1个字节。
它的最小值为-128,最大值为127(含)。
byte数据类型的应用,建议大家存储星期和月的时候可以使用byte类型。
4.short
short数据类型是16位带符号的二进制补码整数,占2个字节。
它的最小值为-32,768,最大值为32,767(含)。
short数据类型的应用,建议大家存储人的年龄或者动物年龄的时候可以使用short类型。
5.int
默认情况下,int数据类型是32位带符号的二进制补码整数,占4个字节。
其最小值为-2的31次方,最大值为2的31次方-1。
int类型是整数的默认数据类型。
int数据类型的应用,建议大家存储恐龙化石的年龄的时候可以使用int类型。
6.long
long数据类型是64位二进制补码整数,占8个字节。
带符号的long的最小值为-2的63次方,最大值为2的63次方-1。
long数据类型的应用,建议大家存储太阳的年龄可以使用long类型。
在声明一个long类型的变量时,可以给数值后面加一个小写的"l"或大写的"L",以表示long类型的数字,推荐使用大写的"L",因为小写的"l"与数字1太接近,容易搞混。
7.float
float数据类型是单精度浮点数,占4个字节。
float最小值和最大值,其值范围如下:
对于高精度的其他需求,例如货币。为此,大家需要使用 java.math.BigDecimal类。
float数据类型的应用,建议大家存储圆周率时可以使用float类型。
声明float类型的变量时,变量值后面加一个小写的“f”或者大写的“F”,以表示你的小数要用float类型来存储。
8.double
double数据类型是双精度浮点数,占8个字节。
double类型的最小值和最大值,其范围如下:
double是小数的默认类型,也就是你写小数的时候,它默认的类型是double。
double数据类型的应用,建议大家存储精度更高的数据时可以使用double类型。
在声明一个double类型的变量时,可以给数值后面加一个小写的"d"或大写的"D",以表示double类型的数字。
9.boolean
boolean数据类型只有两个值:true和false。将此数据类型用于跟踪真/假条件的简单标志。
boolean数据类型的应用,建议大家存储真或假的数据时可以使用boolean类型。
10.char
char数据类型是单个16位Unicode字符,占2个字节。
它的最小值为'\u0000'(或0),最大值为'\uffff'(或65,535(含))。
char数据类型的应用,建议大家存储一个字符的数据时可以使用char类型,例如性别。
11.String
除了上面列出的八种原始数据类型之外,Java编程语言还通过java.lang.String类为字符串提供特殊支持 。
将字符串括在双引号内将自动创建一个新String对象; 例如,String name = "tom";
String对象是不可变的,这意味着一旦创建,它们的值就无法更改。
String不是基本数据类型。有关String类型更多内容请关注后续章节。
12.默认值
什么叫默认值?
就是你不给这个字段初始化值,系统会给他一个初始化值。
这里有一点需要注意,只有字段才享有系统会给它一个默认值的待遇,其它的都没有。
什么意思?
字段才有默认值,变量没有默认值。
什么是字段?
类里面的才有字段,类暂时没有接触,不懂也没关系,后续文章会讲解。我们先来新建一个类,右键main文件夹,选择“New”,点击“Java Class”:
输入类名,选择“Class”,完成之后点击“OK”:
书写“Student.class”:
大家注意看,这个“name”就是字段。好,我们回到Main.class,再看一下什么是变量:
大家看,这个age就是变量,而且它还是局部变量,因为它在方法体里面声明的,局部变量是没有默认值的。我们都知道,变量需要初始化才能使用,如果此时我们只声明了age变量,而没有初始化,它是不能使用的。
我们再来试试字段不初始化有没有问题,创建刚刚新建的Student.class对象(创建对象暂时不懂的同学,后续文章会讲解):
student对象被创建出来了,然后使用student里面的age变量:
运行结果:
我们可以看到:
- 运行没有出错,说明Student对象里面的age有被系统初始化。
- int类型的age变量的默认初始值是0。
好,我们来看看,除了int类型的默认值是0,其它类型的默认值是多少呢:
大家请注意,上图列举的是字段中的数据类型的默认值。
不明白字段的同学,暂时理解为除局部变量以外的地方,那么局部变量又是什么呢?局部变量是指声明在方法中的变量。
局部变量略有不同; 编译器永远不会为未初始化的局部变量分配默认值。如果无法初始化声明它的局部变量,请确保在尝试使用它之前为其赋值。访问未初始化的局部变量将导致编译时错误。
至此,Java基本数据类型相关内容讲解先告一段落,更多内容请持续关注。
答疑
如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。
上一章
下一章
“全栈2019”Java第十四章:二进制、八进制、十六进制
学习小组
加入同步学习小组,共同交流与进步。
- 方式一:关注头条号gorhaf,私信“Java学习小组”。
- 方式二:关注公众号gorhaf,回复“Java学习小组”。
全栈工程师学习计划
关注我们,加入“全栈工程师学习计划”。
版权声明
原创不易,未经允许不得转载!