gpt4 book ai didi

java - Java 中的 char 类型的行为有些奇怪?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:15:37 24 4
gpt4 key购买 nike

让我们考虑以下 Java 中的简单表达式。

char c='A';
int i=c+1;

System.out.println("i = "+i);

这在 Java 中完全有效并返回 66,即 c+1 的字符 (Unicode) 的对应值。


String temp="";
temp+=c;
System.out.println("temp = "+temp);

这在 Java 中太有效了,字符串类型变量 temp 自动接受 char 类型的 c 并在控制台上生成 temp=A


以下所有语句在 Java 中也出奇地有效!

Integer intType=new Integer(c);
System.out.println("temp = "+intType);

Double doubleType=new Double(c);
System.out.println("temp = "+doubleType);

Float floatType=new Float(c);
System.out.println("temp = "+floatType);

BigDecimal decimalType=new BigDecimal(c);
System.out.println("temp = "+decimalType);

虽然 c 是一种 char 类型,但可以在各自的构造函数中无错误地提供它,并且上述所有语句都被视为有效语句。它们分别产生以下输出。

temp = 65
temp = 65.0
temp = 65.0
temp = 65

在这种情况下,Java 中可用的 char 类型的内部行为是什么?

最佳答案

Char 是原始数字整数类型,因此受制于这些野兽的所有规则,包括转换和提升。你会想要阅读这个,JLS 是最好的来源之一:Conversions and Promotions .尤其是阅读“5.1.2 加宽基元转换”的简短内容。

关于java - Java 中的 char 类型的行为有些奇怪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8004264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com