程序当中有很多数据,每一个数据都是有相关类型的,不同数据类型的数据占用空间大小不同,数据类型的作用是指导java在运行程序的时候给数据分配多大内存空间。
java中的数据类型包括两种:
基本数据类型
引用数据类型
基本数据类型包括四大类八小种:
一;整数类:byte,sbort,int,long
二;浮点类:float,double
三;布尔型;boolean
四;字符型;char
字符串“abc”不属于基本数据类型,属于“引用数据类型”,字符属于基本数据类型:字符串使用双引号“abc”;字符使用单引号'a'
基本数据类型 占用空间大小【单位:字节】 byta 1 short 2 int 4 long 8 float 4 double 8 boolean 1 char 2
计算机在任何情况想都只能识别二进制。
二进制是一种表达形式。十进制表示满十进一原则。二进制表示满二进一原则
1 byte=8 bit【一个字节=八个比特位】一个比特位表示一个二进制:1/0
1 KB =1024 byte
1 MB =1024 KB
1 GB =1024 MB
1 TB =1024 GB
1 TB = 1024* 1024 * 1024 * 8 bit
关于java中的数字类型,数字都是有正负之分的,所以在数字的二进制当中有一个二进制位被称为“符号位”。并且这个“符号位”在所有二进制位的最左边,0表正,1表负
byta类型最大值:01111111 【10000000 - 1】
byte类型最大值:2的7次方减1,结果是:127
byte类型最小值;-128【具体的怎么用与二进制表示,这个和原码,反码,补码有关】
二进制转换为十进制 :1110=2^8 2^4 2^1 2^0 =15
十进制转化为二进制 :15=2/15 2/7 2/3 2/1 2/0=1110
八种基本数据类型当中,byte,short,lnt,long,float,double,boolean这七种数据类型计算机在表示的时候比较容易,因为底层都是数字,十进制的数字和二进制之间存在一种固定的转换规则。
但是八种基本数据类型当中char类型表示的是现实世界中的文字,文字和计算机二进制之间“默认”情况下是不存在任何转换关系的。
为了让计算机可以表示现实世界的文字,我们需要进行人为的干涉,需要人负责提前制定好“文字”和“二进制”之间的对照关系,这种对照转换被称为:字符编码。
编码和解码的时候采用同一套字典/对照表,不会出现乱码。
当解码和编码采用的不是同一套字典/对照表,会出现乱码问题。