Java中类数据类型的意义是什么?

5 java types

新手问题。

我已经在基本级别上编程了一段时间了,但是在理解类数据类型时遇到了麻烦。

当我们说它int a = 9; 表示a为数据类型int时,它只能包含整数。

明智地使用String,boolean,double,float等。

但是请考虑以下代码:

Class Node {

Node next = null;
int data;

public Node(int d){ data = d; }

void append(int d)
    {
        blah blah blah
        ..............
    }
}
Run Code Online (Sandbox Code Playgroud)

什么Node next = null;意思 我可以理解创建对象的工作量

Node next = new Node();
Run Code Online (Sandbox Code Playgroud)

然后尝试操作下一个对象。

Jon*_*eet 5

这段代码:

Node next = null;
Run Code Online (Sandbox Code Playgroud)

声明类型为的变量Node。与Node类一样,的值next始终是对类型Node或子类的null引用,或者根本不引用任何对象的引用...在这种情况下,变量以值开头的null

这是真正重要的是要认识到的价值next从来没有一个Node对象本身......这是只有永远的参考。因此,假设我们有:

Node next = new Node(10);
Node foo = next;
Run Code Online (Sandbox Code Playgroud)

在这里,nextfoo是单独的变量,每个变量具有独立的值...但是我们已将的值分配next为的初始值foo,这意味着它们都引用相同的对象。因此,如果我们打印出来foo.data,它将是10。

我喜欢将变量视为纸片-对于引用类型的变量,纸片上写的是房屋的地址或“空”字。如果两张纸上写有相同的地址,则它们指的是同一所房子-但这两张纸本身是独立的。更改一个变量的(删除当前地址并写入另一个地址)不会更改其他变量的任何内容……但是无论您使用哪种纸,都可以看到房屋本身的更改(例如将门漆成红色)到那里。

请注意,在你的问题,你已经集中Stringintdouble而且boolean......但而intdouble并且boolean原始类型(其中一个变量的值就是数据本身-的数量等),String是一类,所以这是一个参考类型。字符串变量的值不是文本本身,而是引用。