java中的数据类型的相互转换

我在学习java中的过程中,遇到这样一个问题
byte,char,short这三种数据进行运算的结果是int型
但是如果是float和int运算的话,结果是float型
我查了下,是java在运算时,会先转换成容量大的类型
而在java中,最大的容量是double,下来是float,然后是int,但是我又看了这几个类型的范围,int的范围比float大多了,这是怎么回事
难道所谓的容量大小和表示范围不一样吗?
在下先谢过各位了,

浮点型和整形相加结果会是浮点型,这样精度才不会缺失

int -> String

int i=12345;
String s="";
第一种方法:s=i+""; //会产生两个String对象
第二种方法:s=String.valueOf(i);//直接使用String类的静态方法,只产生一个对象

String -> int

s="12345";
int i;
第一种方法:i=Integer.parseInt(......
答案就在这里:java数据类型相互转换
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。