java 中 数值不超过3万. 用short好 还是int好

parv2 2014-07-06 12:28:28

我以为 用 short 好...因为节省空间...

但是看到一篇文章说
short 在 虚拟机里 占用的空间和 int 一样大... 而且 计算时 还得 转换来 转换去的...

所以 请问.....

用哪个好?》
...全文
579 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 4 楼 vnvlyp 的回复:
传输存储用short还行,计算处理还是用int吧,大部分CPU指令都是针对32位的int类型的,所以比如CPU要将两个short相加,首先要把short当成int用,然后加完了又要将结果转换为short类型,其实Java本身就是这样规定的,称为自动类型提升机制,像byte char short类型进行大部分运算(如+ - * / >>等)时,都会自动提升为int类型,需要你自己将结果转换回去。 比如:
short s1 = 1234;
short s2 = 4321;
short result = (short)(s1 + s2);
另外对于64位CPU和64位开发运行环境,使用long更好,因为long才是64位的。
正解
  • 打赏
  • 举报
回复
如果只是存放数据用 建议用 short
sunbo624 2014-07-07
  • 打赏
  • 举报
回复
用int就完事儿了 因为java定义字面量数字默认是int 用int方便写
wula0010 2014-07-07
  • 打赏
  • 举报
回复
对于现在的内存和cpu,用short节约的那个字节,意义已经不大了,以前硬件成本高,所以考虑的很仔细,....
-江沐风- 2014-07-06
  • 打赏
  • 举报
回复
引用 5 楼 sc6231565 的回复:
楼上各位都说的好专业啊~作为初学者,俺就觉的Int好,只因为常用,天天用,
那有没有想过为什么常用它呢,我们定义整形时为什么首先想到的就是int呢?
Magical茏 2014-07-06
  • 打赏
  • 举报
回复
楼上各位都说的好专业啊~作为初学者,俺就觉的Int好,只因为常用,天天用,
vnvlyp 2014-07-06
  • 打赏
  • 举报
回复
传输存储用short还行,计算处理还是用int吧,大部分CPU指令都是针对32位的int类型的,所以比如CPU要将两个short相加,首先要把short当成int用,然后加完了又要将结果转换为short类型,其实Java本身就是这样规定的,称为自动类型提升机制,像byte char short类型进行大部分运算(如+ - * / >>等)时,都会自动提升为int类型,需要你自己将结果转换回去。 比如:
short s1 = 1234;
short s2 = 4321;
short result = (short)(s1 + s2);
另外对于64位CPU和64位开发运行环境,使用long更好,因为long才是64位的。
  • 打赏
  • 举报
回复
建议使用 int 类型,在 HotSpot JVM 中 int 是经过特别优化的,从性能和效率上是最优的选择。
shine333 2014-07-06
  • 打赏
  • 举报
回复
主要看楼主是否纠结于内存消耗了。在CPU里面,short和int都是32bit。但是在内存里面,还是16vs32。
落叶1210 2014-07-06
  • 打赏
  • 举报
回复
谁说 占用的空间一样大? 一般的原则是,创建变量时,在不导致溢出的情况下,使用同一种整型类型进行数据处理。所以你如果使用short,在项目中尽量都是用short。 另外,这个问题没必要这么纠结吧?

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧