Java 自动装箱-编程概念

Java 自动装箱-编程概念,java,autoboxing,Java,Autoboxing,第3行和第4行都有一个包装类,编译器执行autoboxing将1转换为Character,但编译器无法将相同的1转换为Float。为什么?浮点数您需要在数字的末尾附加“f”或“f”,就像这样Float f=1f或浮点f=1F 这是因为默认情况下,它将是一个双精度。您需要在浮点数后加上F或F使其成为float。例:Float f=1f : 如果浮点文字的后缀为ASCII字母F或F,则它的类型为float;否则,其类型为双精度,并且可以选择使用ASCII字母D或D作为后缀(§4.2.3) 这并不能回

第3行和第4行都有一个包装类,编译器执行
autoboxing
1
转换为
Character
,但编译器无法将相同的
1
转换为
Float
。为什么?

浮点数您需要在数字的末尾附加“
f
”或“
f
”,就像这样
Float f=1f
浮点f=1F

这是因为默认情况下,它将是一个
双精度
。您需要在浮点数后加上
F
F
使其成为
float
。例:
Float f=1f

:

如果浮点文字的后缀为ASCII字母F或F,则它的类型为float;否则,其类型为双精度,并且可以选择使用ASCII字母D或D作为后缀(§4.2.3)


这并不能回答为什么int不能加宽为float。而int可以缩小到char。试试这个:characters=Character.valueOf(1);浮点数f=浮点数。数值f(1);
1. public static void main(String[] args) 
2. {        
3.    Character s=1;
4.    Float f=1;
5. }