java是强类型语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。所以,本章主要讲Java的八大基本数据类型。
详见表格:
详见表格:
基本数据类型 | 占用字节 | 默认值 | 封装器类 |
byte(字节型) | 1 | 0 | Byte |
short(短整型) | 2 | 0 | Short |
int(整型) | 4 | 0 | Integer |
long(长整型) | 8 | 0.0l | Long |
float(浮点型) | 4 | 0.0f | Float |
double(双精度) | 8 | 0.0d/0.0 | Double |
char(字符型) | 2 | /u0000(空格) | Character |
boolean(布尔型) | 无 | false | Boolean |
其中byte、short、int、long都表示整数的,只不过他们的取值范围不一样:
- byte的取值范围在-128~127(也就是-2的7次方到2的7次方-1)之间
- short的取值范围在-32768~32767(也就是-2的15次方到2的15次方-1)之间
- int的取值范围在-2147483648~2147483647(也就是-2的31次方到2的31次方-1)之间
- long的取值范围在-9223372036854774808~9223372036854774807(也就是-2的63次方到2的63次方-1)之间
至于如何选择整数的类型,需要根据自己的需求来定,取值范围太大会浪费系统资源,太小又满足不了我们的需求,int是我们最常用的一个类型。
float和double是表示浮点型的数据类型也就是小数,他们之间的区别在于他们的精确度不同:
- float:单精度小数,取值范围在3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)
-
double:双精度小数,取值范围在1.797693e+308~ 4.9000000e-324之间
double型比float型存储范围更大,精度更高;
所以通常的浮点型的数据在不声明的情况下都是double型的,小数类型的选取规则和整数一样。
char表示字符型:
- char 可以是汉字,因为是Unicode编码
- char 可以用整数赋值
- char 可以用字符的编码值来初始化,如:char=’’,表示结束符,它的ascll码是0,这句话的意思和 char c=0 是一个意思。
boolean为布尔型,它只有两个值trur和false,表示事件的真和假
下面开始实战:
我们先声明一个byte类型的数然后打印这个变量在main方法里写上下面代码
我们先声明一个byte类型的数然后打印这个变量在main方法里写上下面代码
- byte a;
- a = 1;
- System.out.println(a);
然后运行,可以在控制台看到输出了1
- 注意变量的命名规则是:变量名必须为字母数字,下划线,美元符组成,不能包含空格,特殊字符等,并且首字母不能为数字。
-
这段代码的意思是,首先我们声明一个byte类型的变量,并且给变量起名叫做a,下一行的意思是我们把1这个数赋值给a(关于赋值运算会在运算符这章详细讲解),然后就是打印这个a。由此可见,我们的代码运行的顺序是从上往下运行的。
其它的类型的变量声明和赋值与byte一样,在此不做过多描述。 -
除了声明变量,赋值变量这样去操作变量,我们还可以一步到位进行:声明并赋值:
- byte a = 1;
声明变量赋值变量的本质:
- 声明变量是让计算机分配一块内存,这块内存的大小根据变量类型来决定,赋值则是把一些数据装入这块内存。
- 如果分配的内存太小装不下要装的数据,则编译器会报错,比如可以尝试把200赋值给byte.
-
变量不可以重复声明(注意),如:
- byte a;
- byte a;
-
变量可以重新赋值,如:
- byte a = 1;
- a = 2;
至于表格中最后一列的“封装器类”,在此不做过多的解释,后面也会抽出一章进行讲解。