1.什么是字节?什么是字符?什么是位
1、位:
数据存储的最小单位。每个二进制数字0或者1就是1个位;
2、字节:
8个位构成一个字节;即:
1 byte (字节)= 8 bit(位);
1 KB = 1024 B(字节);
1 MB = 1024 KB; (2^10 B)
1 GB = 1024 MB; (2^20 B)
1 TB = 1024 GB; (2^30 B)
3、字符:
a、A、中、+、*、の......均表示一个字符;
一般 utf-8 编码下,一个汉字 字符 占用 3 个 字节;
一般 gbk 编码下,一个汉字 字符 占用 2 个 字节;
java基本类型占用字节
byte 1字节(最小值-128 -2^7)(最大值 127 2^7-1)
boolean 至少1字节(只有true和false概念)
short 2字节(最小值-32768 -2^15)(最大值32767 2^15-1)
char 2字节 (最小值 u0000(即为0)) (最大值uffff(即为65,535))
int 4字节(最小值-2147483648 -2^31)(最大值2147483647 2^31-1 )
float 4字节(单精度浮点数字长32位,尾数长度23,指数长度8,指数偏移量127)
long 8字节(最小值-9,223,372,036,854,775,808(-263))(最大值9,223,372,036,854,775,807(263 -1))
double 8字节( 双精度浮点数字长64位,尾数长度52,指数长度11,指数偏移量1023;)
2.数据库的varchar是什么类型?
数据库的存储单位是以字符为单位的(数据展示的最小单位:数字就是单个数字,字母就是单个字母,汉字就是单个汉字,日文就是单个日文)
varchar类型不管是汉字还是字符数字,配置的数量指的是字符
字符和字节没有必然联系,它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。不同编码里,字符和字节的对应关系不同:
例子
当有8个汉字的时候就保存失败了
7个汉字的时候就是可以保存的
同样应用于数字
3.varchar和char的区别
char类型的长度固定,占用更多的存储空间
varchar长度不固定,用到多少控件占用多少控件