FK ff 就相当于指针、代号、连接
new FK() 其实就是在内存中给这个对象开辟了一块空间,这个对象存在了
FK ff=new FK();就是将这个代号指向了这个对象,然后就可以用代号来操作对象了
FK ff=null;就是只有代号,但是这个代号没有实际意义,因为他不代表某个具体的对象,在接下来的代码中,通常就是将这个代号指向某个具体的对象(赋值)
再举个例子就是:
FK ff 是小孩的名字
FK ff=null; 小孩还没有出生,可以让任何一个小孩叫这个名字
FK ff=new FK();小孩出生并且和名字对应了,以后可以用名字来称呼这个小孩了
FK ff=new FK();与FK ff=null;的区别?
首先我讲一下java虚拟机在内存中会分配几个去
这里涉及到了两个区域 栈 和 堆
栈是内存比较小的部分 理解成存名字
堆是内存比较大的部分 理解成存对象
FK ff=null; 相当于只在栈中声明了个名字叫 ff 存储在栈中
FK ff=new FK(); 相当于不仅仅在栈中声明了个名字叫ff 还在堆中分配了内存给这个对象 而ff指向了堆里的FK类的一个对象
纯手打 望采纳
1. FK ff=new FK(); 代表ff指向了一个实例对象,这样就可以调用类方法了,比如ff.bx();
2. FK ff=null; 代表指向了空对象,因为方法都是依存于对象的,所以不能ff.bx();会报空指针错误
FK ff=new FK();表示ff已经初始化了,可以使用了,比如调用ff.bx()。
与FK ff=null;表示声明了以个变量ff但是尚未初始化(只是占了坑了),如果调用ff.bx(),会报空指针错误。