java中short和int开销是一致的?short开销比int大??

来源:互联网 发布:加藤小雪相貌知乎 编辑:程序博客网 时间:2024/06/01 10:25

一直从课本中看到,short占2个字节,int占4个字节,在使用过程,肯定小于2的16次方,那应该选择short而不是int,but,其实short并不比int节省资源,甚至short消耗资源大于int



这是什么问题:“我知道为什么会转成int,是为了节省指令数目。我的问题是,为什么我们平时会说short占16位,int占32位。类似的还有byte、char,这几个都会转成”

这个很简单,因为32位的系统(x86系列的寄存器啥的)一次能够处理4个字节,也就是32位,所以直接搞32位的数据就不必进行什么数据的对齐 啊补全啊什么的。。
换句话,为了速度喽。





扩展一下,mysql数据库中,int(1)和int(10),开销一样嘛?或者,int(1)只能存0-9,存不下100?
答案是NO
首先说下,mysql中int(N),其中的N,是显示位数。在mysql中,除了显示位数,还有一个存储位数的概念,int类型的字段能存储的数据上限还是2147483647(有符号型)和4294967295(无符号型),也就是说,你用int(1)和int(10),其实都是int的。。。。。。


可能有人问,我varchar(10),存11位的字母,为什么就存不了呢?因为varchar是可变字符串啊,总不能让你随便存储吧,如果都是让你随便存储,那一个十位的字符串占着一个TEXT的空间,那效率不是太太太低下了么?





原创粉丝点击