整型
类型 | 占用存储空间 | 表数范围 |
byte | 1字节=8bit位 | -128~127 |
short | 2字节 | -2(15次方)~2(15次方)-1 |
int | 4字节 | -2(31次方)~2(31次方)-1(约21亿) |
long | 8字节 | -2(63次方)~2(63次方)-1 |
bit(字节单位,计算机最小的存储单位,也是基本存储单位)其数值不是0就是1,byte拥有8位bit字节,即相当于2的8次方,即byte可以表示256个数,因考虑到数据中可能出现负数的情况,因而byte的表数范围定义为-128~127,范围区间也正好是256;
同理short为2字节,其范围区间大小为 2(16次方),所以表数范围为-2(15次方)~2(15次方)-1
- Java的整型常量默认为int型(最常用),声明long型常量须后加 “l” 或者 “L”
- Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
byte示例:
如果我们给byte类型的变量b2赋值赋一个不在byte表数范围的值呢:可以看到编译错误
long型常量须后加 “l” 或者 “L”:
浮点型:表示带小数点的数值
类型 | 占用存储空间 | 表数范围 |
单精度 float | 4字节 | -3.403E38~3.403E38 |
双精度 double | 8字节 | -1.798E308~1.798E308 |
-3.403E38~3.403E38中的E代表10,-3.403E38相当于-3.403乘以10的38次方
- float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
- double:双精度,精度是float的两倍。通常采用此类型
拓展:单精度float是4个字节,整数中的int也是4个字节。而float能表示小数点且表数范围还比int大,甚至float的数值范围比整数中的long还大,为什么呢?
因为int整形它一个数它就是一个数,而float、double本质是用一部分来表数数值的多少,用另外的一部分来表示是10的多少次幂了。
然后尝试下float变量
定义float类型变量时,变量要以“f”或者“F”结尾
字符类型:char
- char 型数据用来表示通常意义上“字符”(一个字段=2字节,相当于16个bit)
- Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符
char的使用(前两种常用):
- 定义char变量,通常使用一对 ' '(单引号),内部只能写一个字符
- 表达方式:(1)声明一个字符;(2)转义字符
- 直接使用Unicode值来表示字符型常量:"\uXXXX",其中,XXXX代表一个十六进制整数。如:\u000a表示\n。
拓展(转义字符):\b(退格符)、\n(换行符)、\r(回车符)、\t(制表符)、\"(双引号)、\'(单引号)、\\(反斜线)
定义char变量,通常使用一对 ' '(单引号)
char型变量内部只能写一个字符
char的正常使用:
但需要注意char变量的等号两边需要空格! 否则编译错误
char变量也用于转义字符
我们输出未换行的hello world语句。然后我们再在里面添加换行的转义字符
可以看到成功换行。如果我们使用制表符呢(作用类似于Q键左边Tab)
可以看到成功地显现了空格。
char变量可以直接使用Unicode值来表示字符型常量,\u后面的"0123"本质为一串字符,是unicode编码格式将这个字符(字符为"?")编码后才变成的“0123”.即“?”对应unicode编码0123这个数