计算机基础、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基本数据类型

计算机基础、java基本类型、mysql字段长度,易混淆问题

double 和 float 的区别: double 精度高,有效数字 16 位,float 精度 7 位。但 double 消耗内存是 float 的两倍,double 的运算速度比 float 慢得多。

计算机基础、java基本类型、mysql字段长度,易混淆问题

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