gpt4 book ai didi

java - 为什么 char、double 和 float 的默认值打印成这样?

转载 作者:搜寻专家 更新时间:2023-11-01 03:35:12 26 4
gpt4 key购买 nike

我一直在尝试找出 当我打印一个使用默认值 ' 初始化的 char 变量时,为什么我会得到一个 ' '\u0000'?

我还知道 float 和 double 有一个 default value of "0.0f" and "0.0d" ,但是当我打印它们的默认值时,后缀“f”和“d”没有打印出来。那么为什么这些后缀没有打印值呢?

代码如下:

class Check{
char c;
float f;
double d;

public static void main(String a[]) {
Check obj = new Check();
System.out.println("Default value of char : " + obj.c);
System.out.println("Default value of float : " + obj.f);
System.out.println("Default value of double: " + obj.d);
}
}

在代码中,char 的默认值打印为 ' '。对于 float ,它是“0.0”,对于 double 是“0.0”。简而言之,我的问题是:为什么我得到的是 ' ' 而不是 '\u0000' 或 char 的 null(或类似的东西)?为什么不打印 float 和 double 默认值中存在的后缀? (例如“0.0f”“0.0d”)

注:还有其他问题如:Primitives/Objects Declaration, default initialization valueswhat's the default value of char? ,但与我的问题不同,这些问题仅讨论它们的默认值而不是打印它们。

最佳答案

这些后缀在 java 代码之外没有任何意义,因此它们永远不会打印到控制台、文件或 Socket

“\u”前缀也是如此(java 内部使用 Unicode),当你打印一个 char 值时,你实际上是在打印相应的字符。

默认的 character'\u0000' 不为空,并且是不可打印的字符,根据您的系统给出不同的输出:空,正方形。 ..

如果你尝试打印一个,系统应该输出一些东西,“东西”将取决于平台,但它不应该忽略你的打印,即使它无法正确显示它。

关于java - 为什么 char、double 和 float 的默认值打印成这样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34239371/

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