# 位,字节, 字符
# 1. 位
数据存储的最小单位。每个二进制数字0或者1就是1个位,比特为 bit ,简称 b
# 2. 字节
8个位构成一个字节;即:1 byte (字节)= 8 bit(位);
Byte(字节),简称B。byte是基本数据类型,Byte是byte的包装类
1 KB = 1024 B (字节);
1 MB = 1024 KB ; ( 2^20 B )
1 GB = 1024 MB ; ( 2^20 KB )
1 TB = 1024 GB ; ( 2^30 KB )
# 3. 字符
a、A、中、+、*、の...... 均表示一个字符;
字符 (汉字和汉字标点符号都算字符)
一般 utf-8 编码下,一个汉字 字符 占用 3 个 字节;
一般 gbk 编码下,一个汉字 字符 占用 2 个 字节;
# 4. 字符集
即各种各个字符的集合,也就是说哪些汉字,字母(A、b、c)和符号(空格、引号..)会被收入标准中;
# 5. 编码
ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为 8 位二进制数,换算为十进制。最小值-128,最大值127。如一个ASCII码就是一个字节,0~127(总共有128个ASCII码)。
UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节
Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节
# 基本数据类型范围
在 JAVA 中一共有八种基本数据类型,他们分别是: byte、short、int、long、float、double、char、boolean
byte的取值范围为-128~127, 占用一个字节 (-2^7到(2^7)-1)short的取值范围为-32768~32767, 占用两个字节 (-2^15到(2^31)-1)int的取值范围为-2147483648``2147483647``(``-2^31``(2^31)-1) , 占用四个个字节long的取值范围为(-9223372036854774808~9223372036854774807), 占用8个字节(-2^63到(2^63)-1)
可以看到 byte 和 short 的取值范围比较小,而 long 的取值范围太大,占用的空间多,基本上 int 可以满足我们的日常的计算了,而且 int 也是使用的最多的整型类型了。 在通常情况下,如果 JAVA 中出现了一个整数数字比如 35 ,那么这个数字就是 int 型的,如果我们希望它是 byte 型的,可以在数据后加上大写的 B : 35B ,表示它是 byte 型的。同样的 35S 表示 short 型, 35L 表示 long 型的,表示 int 我们可以什么都不用加,但是如果要表示 long 型的,就一定要在数据后面加 “L” 。
浮点型 float 和 double 是表示浮点型的数据类型,他们之间的区别在于他们的精确度不同
-
float3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方), 占用4个字节 -
double1.797693e+308 ~ 4.9000000e-324占用8个字节.double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,可以在数据后面加上“F”。 浮点型的数据是不能完全精确的,所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。 -
boolean型(布尔型) 这个类型只有两个值,true和false(真和非真)boolean t = true;boolean f = false; -
char型(文本型) 用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容 字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加' ',比如'1'表示字符'1'而不是数值1char c = ' 1 '; 我们试着输出c看看,System.out.println(c);- 结果就是
1 - 而如果我们这样输出呢
System.out.println(c+0); 结果却变成了49。 如果我们这样定义c看看char c = ' \u0031 '; - 输出的结果仍然是
1, - 这是因为字符
'1'对应着 unicode 编码就是\u0031,char c1 = 'h',c2 = 'e',c3='l',c4='l',c5 = 'o'; System.out.print(c1);System.out.print(c2);System.out.print(c3);System.out.print(c4);Sytem.out.print(c5);
示例:
1 | public class PrimitiveTypeTest { |
1 | 基本类型:byte 二进制位数:8 |