个人理解就看你的字符长度可能,这是一个自增型的字段,类型只可能在52个左右,,那么可以设置byte 型,,
如果类型很长,那就对应它可能的最大值设置,最简单的说法是,有多大的需求 ,用多大的量,理论上杀猪可以用牛刀,但会照成内存的浪费,数据库冗余等等,
最大值的可以在网上搜索关键词
byte的取值范围:-128 --- 127;
从计算机组成原理的角度可以解释:byte在计算机中是占8个字节的 而且byte 是有符号整形 用二进制表示时候最高位为符号位 0代表正数 1代表负数。
最大值:127 0111 1111 即2的7次方减去1;
最小值:-128 这个数字曾经困扰我很久, 要知道正数在计算机中是以原码形式存在的,负数在计算机中是以其补码形式存在的,那么一个负数的补码是怎么计算的呢? 就是负数的绝对值的原码转为二进制再按位取反后加1,
下边这个10和-10为例来介绍的 :10原码:0000 1010 它在计算机中的存储就是 0000 1010, 那么-10呢? 按照前面说的 算除其绝对值为10,转为二进制 0000 1010 按位取反 1111 0101 再加1后:1111 0110,此为-10补码 ,好的,计算机中的1111 0110就是代表-10了。
我们来看 -128 绝对值128的二进制表示:1000 0000 按位取反 0111 1111 加1后:1000 0000,也就是说 -128在计算机中的表示就是 1000 0000 了, 再来看一下-129 在计算机中的表示,绝对值129的范围已经超出了了byte的位数
看你要处理数的范围而定。
byte字节8位,范围0-255
short 16位 最大是+2^15,最小-32768
int 一般环境有16位,也有32位的
long 32位
byte 多是在读写二进制文件的时候用
short .这个基本就不用
int .这个就不多说了把
long int的长度不够用的时候
要说注意的话 运算的时候byte和short都会被当作int处理 直接写的数字也是int 这个时候要注意强制类型转换
比如
byte b = 1+2; //这样写会保错
必须 byet b =(byet)1+2;
什么情况下适用,计算的结果不大于该类型的最大值,就适用。
小类型存储大数,JAVA报错。大类型存储小数据,浪费。