Java 这两者有区别吗?
只是把它们混淆了DJava 这两者有区别吗?,java,Java,只是把它们混淆了D 我两个都试过了,但还是不知道有什么不同。是的,他们是不同的学生仅创建一个引用,其中asStudent=new Student()创建一个对象并占用一些内存学生声明一个名为studentis的变量,该变量的类型为student。它的默认值为null Student=newstudent()声明一个名为student的变量,其类型为student,但它也为其分配一个新构造的student对象 这与我告诉你x是一个“数字”或x是“数字5”的区别类似,student只是指向一个不指向
我两个都试过了,但还是不知道有什么不同。是的,他们是不同的
学生代码>仅创建一个引用,其中asStudent=new Student()
创建一个对象并占用一些内存学生
声明一个名为student
is的变量,该变量的类型为student
。它的默认值为null
Student=newstudent()
声明一个名为student
的变量,其类型为student
,但它也为其分配一个新构造的student对象
这与我告诉你x
是一个“数字”或x
是“数字5”的区别类似代码>,student只是指向一个不指向任何内容的学生的引用。它只是一个空白引用,可以指向学生
<代码>学生=新学生()
是一个学生
引用,指向特定的学生
1. Student student;
2. Student student = new Student();
您只需定义变量的类型。它现在包含null
值
Student student;
这一个设置变量类型并为其分配新值,以使student
不再为null
Student student = new Student();
在这里,您只是在创建引用
1. Student student;
2. Student student = new Student();
在这种情况下,您正在分配对象。已经提到,但我无法抗拒: 1是声明的学生的变量类型
2也在声明和定义它。是的,有很大的区别 1) 创建引用
1. Student student;
2. Student student = new Student();
这个命令将告诉JavaVM创建一个包含引用的字段。但此时,没有存储任何对象,因此该引用将不会进入任何位置-您经常会将其视为NullPointerException
2) 创建类的实例
Student student;
此命令将调用您的构造函数(或Java的默认构造函数),并使用自己的字段和内容创建类的新实例
3) 将实例分配给字段
new Student();
同时使用这些命令,可以为对象保留空间,并将其创建为下一步。创建后,对该对象的引用将保留在学生字段中
如果你把这两行写在一起,看起来像这样,但意思是一样的:
Student student;
student = new Student();
第一个是指针(即它指向一个学生对象),但它为空,表示不指向任何地方(没有保留地址空间)。第二个是指向完整“学生”对象的指针,内存地址为该对象保留(表示内存分配)。因此,如果您尝试引用第一个,您将得到NullPointerException,但第二个是有效对象
Student student = new Student();
仅声明类型为student
的引用变量student
。此时student
为null
Student student;
将创建学生
类的新对象,并将引用分配给学生
新操作符通过为新对象分配内存并返回对该内存的引用来实例化类。新操作符还调用对象构造函数。短语“实例化类”的意思与“创建对象”的意思相同
有。阅读基础教程。尝试访问一个属性,你会看到区别…@AliAlamiri作为一个初学者,他应该先阅读基础知识,然后再发布这样一个没有任何努力和最少研究的问题。@AliAlamiri然后他应该详细说明,他到底不明白什么。至少让我们知道他做了一个很小的研究。@AliAlamiri在你看了这些文件后,你会发现答案就在那里,这甚至是很小的。非常感谢你,先生!;)帮个大忙!:)谢谢您的努力和清楚的解释,先生。:)@克莱姆:有关更多信息,请参阅。我希望你们能弄清楚这件事。谢谢,先生我开始喜欢Java了。哈哈D