前言
好长时间也没写文章了,原因有很多,就不在这说了,好不容易有个空了就拿起了java基础翻看着,然后也就有了这篇文章。
正文
java中常用的声明有三种方式,那么这三种方式有什么区别呢?对于jvm熟悉的朋友可能感觉这个很简单吧!下边咱们就来说明一下这个区别,我试着再IDEA中写了一下并运行调试了看下图:
通过代码的调试,有查了一些其他人的看法总结出来三点:
//声明有一个标识符的名字是student0
Student student0;
//声明有一个标识符的名字是student1并指向null
Student student1=null;
//声明有一个标识符的名字是student2并指向实例化对象
Student student2=new Student();
我对null 的理解:
null既不是对象也不是一种类型,它仅是一种特殊的值,可以将其赋予任何引用类型,也可以将null转换成任何类型。
通过查资料显示:
声明就是向编译器介绍名字也就是常说的标识符。基本类型的变量的声明和定义(初始化)是同时产生的;对于对象来说,声明和定义是分开的。
对于以上三种声明方式,
第一种是不在内存中开辟对象的存储空间的。
第二种是指向特殊的null
第三种是在内存中开辟一块空间并通过标识符指向这块空间
结束
还没有实际的去验证,在内存中开辟空间的情况,水平有限,各位看官批评指正。