看了一下字节码的文章,发现hotspot中byte与short在实际内存存储与运算时都是看做int来进行的。
那这两种数据类型有什么作用呢?直接用int就可以代替了吧?
像String的数组从short变成byte,之前说是为了节省空间,可是这样看也不能达到节省空间的目的啊?
这是为什么呢?
小白求解!
看了一下字节码的文章,发现hotspot中byte与short在实际内存存储与运算时都是看做int来进行的。
那这两种数据类型有什么作用呢?直接用int就可以代替了吧?
像String的数组从short变成byte,之前说是为了节省空间,可是这样看也不能达到节省空间的目的啊?
这是为什么呢?
小白求解!
3 回答2.2k 阅读✓ 已解决
3 回答3.7k 阅读✓ 已解决
8 回答2.9k 阅读
4 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
1 回答1.9k 阅读✓ 已解决
具体可以看这篇:https://xie.infoq.cn/article/... 总结得很好了。
一句话说的话就是byte、short、char 等类型的数据当做局部变量使用时,实际确实占用一个 slot 的大小,即跟 int 一样是 4 字节;但在数组中是可以优化的,byte 数组中每个元素占 1 字节,char、short 数组中每个元素占 2 字节。所以就省空间了。