计算机基础、java基本类型、mysql字段长度,易混淆问题
学这有啥用,迟早要转行
一、字节和字符
字节(Byte)
是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。
1 KB = 1024 Byte
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
字符
是指计算机中使用的文字和符号,比如1、2、3、a、A、中、+、*、の......均表示一个字符。
区别:
字符和字节完全不是一个概念,如果把字符比作人,那字节就是重量,我管你是中国人、外国人、还是鸡鸭鹅狗,反正一个人一个字符。字节是重量,不管你是什么玩意,在计算机世界里,你就占用空间,就有重量。
但是在不同星球上,引力不同,重量也会不同,不同的星球就是不同的编码格式或者语言环境。
比如:
计算机世界里,utf-8 编码下,一个汉字字符占用3个字节;gbk编码下,一个汉字字符占用2个字节,英文和数字不考虑编码格式,永远占一个字节。
java语言世界里,一个char分配2个字节,当然一个char可以储存一个字母、数值或者一个中文。
二、java基本数据类型
double 和 float 的区别: double 精度高,有效数字 16 位,float 精度 7 位。但 double 消耗内存是 float 的两倍,double 的运算速度比 float 慢得多。
float a=1.3 会编译报错,正确的写法 float a = (float)1.3或者float a = 1.3f(f或F都可以不区分大小写)
三、Mysql字段长度
mysql 中varchar(50) 不管中文 还是英文 都是存50个,但是一个表中所有varchar字段的总长度跟编码有关,如果是utf-8,那么大概65535/3,如果是gbk,那么大概65535/2