当前位置: 首页 > 知识库问答 >
问题:

如何找到Java中所有数据类型的默认值?[重复]

景靖琪
2023-03-14

我在这个程序中得到了错误,以找到Java中所有数据类型的默认值。

import java.lang.*;

class Datatypesvalues
{
    public static void main(String var[])
    {
        int i;
        long l;
        float f;
        double d;
        char ch;
        boolean bool;
        System.out.println(+ by);
        System.out.println(+ sh);
        System.out.println(+ i);
        System.out.println(+ l);
        System.out.println(+ f);
        System.out.println(+ d);
        System.out.println(+ ch);
        System.out.println(bool);
    }
}

共有3个答案

袁志专
2023-03-14

您在main函数中定义了变量,使其成为局部变量,并且没有初始值。在使用之前,必须对其进行初始化。否则将出现未初始化错误。

必须使用在任何方法之外声明的实例变量才能具有初始值。研究变量的范围。这个页面很有帮助:Java变量类型

class example
{
    public static int a; 

    public static void main (String[] args) 
    {
        System.out.println(a);
    }
}
荣晨朗
2023-03-14

将变量声明为实例变量,并将其打印在函数中以获取默认值。

局部变量不会初始化为默认值。

益英逸
2023-03-14

如何在Java中找到所有数据类型的默认值?

阅读Java®语言规范,例如JLS§4.12.5。变量的初始值:

  • 每个类变量、实例变量或数组组件在创建时都会使用默认值进行初始化(§15.9、§15.10.2):
    • 对于byte类型,默认值为零,即(byte)0的值
    • 对于short类型,默认值为零,即(short)0的值
    • 对于int类型,默认值为零,即0
    • 对于long类型,默认值为零,即0L
    • 对于类型float,默认值为正零,即0.0f
    • 对于double类型,默认值为正零,即0.0d
    • 对于char类型,默认值为空字符,即“\u0000”
    • 对于boolean类型,默认值为false
    • 对于所有参考类型(§4.3),默认值为空

    它接着说:

    • 局部变量(§14.4,§14.14)在使用前必须通过初始化(§14.4)或赋值(§15.26)明确给定一个值,其方式可以使用明确赋值规则(§16(明确赋值))进行验证

    这就是你的html" target="_blank">代码的问题所在。您没有显式地为局部变量赋值。

 类似资料:
  • 本文向大家介绍如何在MySQL ENUM数据类型中插入默认值?,包括了如何在MySQL ENUM数据类型中插入默认值?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助ENUM数据类型的DEFAULT属性来实现。如果未指定值,则DEFAULT属性会使ENUM数据类型具有默认值。换句话说,我们可以说INSERT语句不必为此字段包含值,因为如果不包含该值,那么将插入DEFAULT之后的值。DEFA

  • 本文向大家介绍如何找到R数据帧中所有值的均值?,包括了如何找到R数据帧中所有值的均值?的使用技巧和注意事项,需要的朋友参考一下 如果数据框具有所有数字列,那么我们可能有兴趣查找该数据框中所有值的均值,但是由于数据框对象不是数字,因此无法直接完成此操作。因此,要查找R数据帧中所有值的均值,我们需要先将其转换为矩阵,然后使用均值函数。 示例 请看以下数据帧- 输出结果 使用均值函数查找均值- 示例 输

  • 问题内容: 在Java中,默认情况下所有类都扩展了任何默认类吗? 示例:如果我有一个简单的课程,例如: 此类默认情况下是否扩展了类? 问题答案: class是所有类的超类。 类对象是类层次结构的根。每个类都有Object作为超类。所有对象(包括数组)都实现此类的方法。 您可以测试一下:

  • 问题内容: 如果我写这样的话 哪种类型带有“ 18”?是 int 还是 byte ?还是还没有类型? 它不能是int,因为这样是正确的: 这是不正确的: 编辑:我想我在工作分配转换的规范中找到了正确的部分: 常量的编译时缩小意味着代码如下: 字节theAnswer = 42; 被允许。如果不进行缩小,则整数文字42具有int类型的事实意味着将需要强制转换为字节: 字节theAnswer =(字节)

  • 为我在原始问题中提出的错误代码示例道歉。我试图把我的问题简单化,但结果却相当令人困惑。 我稍微修改了一下代码: 我得到了第一个错误: 所以我把最后一行改为: 然后在Orelse上弹出一个新的错误: Optional>类型中的方法orElse(Capture#4-of?extends Map.Entry)不适用于参数(AbstractMap.SimpleEntry) 我最初的问题是,我不知道如何为这

  • 问题内容: 如何去尝试找到Java中给定类的所有子类(或给定接口的所有实现者)?到目前为止,我有一种方法可以执行此操作,但是我发现它效率很低(至少可以这样说)。方法是: 获取类路径上存在的所有类名称的列表 加载每个类并测试以查看它是否是所需类或接口的子类或实现者 在Eclipse中,有一个很好的功能,称为类型层次结构(Type Hierarchy),可以很有效地显示它。如何进行编程? 问题答案: