【new手疑问】,java数据类型有int为什么还要有btye和short

new手一枚,想问一下java数据类型有int为什么还要有btye和short,只是为了内存能更节省一点吗?(个人觉得比起long、float、double来说,byte和short、char、int它们之间的内存不会节省太多吧)或者说有别的更适合它们特别的用法,帮忙解惑一下 谢了
基本数据类型的范围排序

byte < short = char < int < long < float < double

不同长度的整数有不同的需求。
比如byte,占一个字节,我们在读取二进制文件或者网络数据时都是按字节读取的,所有用byte数组去存储是最合适的。
char类型存储字符,这个肯定是要有的吧,虽然char可以自动向上转型为int,但是需要有专门的字符类型存储字符啊。
short适用于小整数,这个倒是不怎么常用,但是也有存在的意义。

不同的数据类型能够满足不同情况下的需求;
第一:每种数据类型占用空间有些不同,在数据范围足够的情况下,尽可能用数据量小的来表示(虽然单个看起来节约的空间不多,但耐不住数量多呀!)
第二:每种数据类型表示的数据范围不同;浮点型的精度也会不同,但是有时候这些精度还是不满足对精度要求很高的需求,于是就有了 bigdecimal来顶上;
可以说每种数据类型的设计出来的目的是为了满足不同情况下的需求;