相关疑难解决方法(0)

为什么必须在Java中初始化局部变量(包括基元)?

为什么必须在Java中初始化局部变量(包括基元)?为什么在实例变量的情况下不相同?

java variables primitive-types

53
推荐指数
4
解决办法
3万
查看次数

C#未初始化的变量是危险的吗?

我熟悉C#规范,第5.3节,它说在使用之前必须分配一个变量.

在C和非托管C++中,这是有道理的,因为堆栈没有被清除,并且用于指针的内存位置可能在任何地方(导致难以追踪错误).

但我的印象是运行时不允许真正的"未分配"值.特别是未初始化的引用类型将始终具有空值,而不是先前调用方法或随机值所遗留的值.

这是正确的,还是我错误地假设这些年来检查null是否足够?你可以在C#中使用非真实的变量,或者CLR是否会处理这个变量并且总是设置了一些值.

c# clr

36
推荐指数
3
解决办法
5081
查看次数

Java中未初始化的变量和成员

考虑一下:

public class TestClass {

    private String a;
    private String b;

    public TestClass()
    {
    a = "initialized";
    }

    public void doSomething()
    {
    String c;

        a.notify(); // This is fine
    b.notify(); // This is fine - but will end in an exception
    c.notify(); // "Local variable c may not have been initialised"
    }

}
Run Code Online (Sandbox Code Playgroud)

我不明白."b"永远不会被初始化,但会产生与"c"相同的运行时错误,这是一个编译时错误.为什么局部变量和成员之间存在差异?

编辑:让会员私密是我最初的意图,问题仍然存在......

java oop variables

28
推荐指数
3
解决办法
2万
查看次数

实例字段与局部变量的初始化

我一直想知道为什么在下面的例子中可以不初始化实例字段(依赖它将具有其默认值)并访问它,而局部变量显然必须初始化,即使我将其初始化为默认值无论如何它会得到......

  public class TestClass
  {
    private bool a;

    public void Do()
    {
      bool b; // That would solve the problem: = false;
      Console.WriteLine(a);
      Console.WriteLine(b); //Use of unassigned local variable 'b'
    }
  }
Run Code Online (Sandbox Code Playgroud)

.net c# clr

18
推荐指数
2
解决办法
8949
查看次数

Java中未初始化的类成员不会发出任何编译器错误.然而局部变量呢.为什么?

请考虑Java中的以下代码段.它不会编译.

package temppkg;

final public class Main
{
    private String x;
    private int y;

    private void show()
    {
        String z;
        int a;

        System.out.println(x.toString()); // Causes a NullPointerException but doesn't issue a compiler error.
        System.out.println(y); // Works fine displaying its default value which is zero.
        System.out.println(z.toString()); // Causes a compile-time error - variable z might not have been initialized.
        System.out.println(a); // Causes a compile-time error - variable a might not have been initialized.
    }

    public static void main(String []args)
    {
        new …
Run Code Online (Sandbox Code Playgroud)

java

18
推荐指数
1
解决办法
5784
查看次数

实例变量和局部变量的默认值

我读到Java为类属性提供了默认值,但没有为局部变量提供默认值.那是对的吗?如果是这样的话背后的原因是什么?当你做一些好事时,为什么不一直这样做呢?

谢谢,
罗杰

java

15
推荐指数
1
解决办法
7853
查看次数

Java中的变量默认值

声明时,Java中的每个类型都具有原始值.本文包含原始数据类型原始数据类型的描述.知道这一点,为什么Eclipse显示错误告诉我变量可能尚未初始化?如果我有例如

int x;
x++;
Run Code Online (Sandbox Code Playgroud)

java variables

8
推荐指数
3
解决办法
2万
查看次数

局部变量的默认值?

在Java,为什么类变量初始化为默认值.但局部变量不是.?

谁能解释一下?

java variables

7
推荐指数
1
解决办法
1069
查看次数

为什么Java默认只初始化类变量而不是局部变量?

我正在学习Java中的链表,我有三个文件Main.java,List.java和Node.java.当我这样做时,我得到一个问题为什么我应该初始化一个在方法中声明的局部变量,而不是在类中声明的类变量.

在第一张图片中,我将head声明为类变量,它不会抛出任何错误.

但是在第二张图中我将head初始化为局部变量.现在,它会抛出一个错误来初始化局部变量.

声明为类变量时有什么区别?

在此输入图像描述

Java初学者.

更新:我知道如何解决这个问题,但我不清楚为什么Java默认只初始化类变量而不是局部变量.

java oop

6
推荐指数
1
解决办法
1267
查看次数

为什么java局部变量没有默认值?

为什么在Java类字段中将其初始化为null/0而局部变量不是?这种语言设计选择有原因吗?

java programming-languages

5
推荐指数
0
解决办法
98
查看次数

标签 统计

java ×8

variables ×4

c# ×2

clr ×2

oop ×2

.net ×1

primitive-types ×1

programming-languages ×1