java对象的使用首先是声明对象,这个声明的对象名存在栈内存中,只是一个引用,没有实际的内容,所以需要实例化,实例化的意义在于在堆内存中分配一块内存给这个对象存放。按照《thinking in java》的说法是,声明的对象名称是一个句柄,实例化的对象是句柄操纵的对象
这是我从网上找的比较能让我明白的一个解释
Object是超级父类,我们一直在说面向对象编程,而且我们java也是面向对象编程,但是在编写一些代码例子的时候我们会发现,Object有的时候往往不会去new,这对初学者来说无疑是晴天霹雳,尤其是我。作为科班生,老师敲的代码一个都看不懂的时刻支配了我整个大学生涯,尤其是不new对象时。刚才上文也提到了,Object类在需要声明才可以实现在栈中出现,并有一个引用的作用,例如:
Object abj;
这个时候我们可以在其他的方法中去引用,譬如:
public hahah(Object obj)
从这里我们可以看到我们声明的这个Object是另一个方法的实例,做到了去传值的作用。而且仅仅是传值。
那么既然不new 已经这样了,那么如果我们去new出来的话我们是做什么的呢。
new出来我们就可以在堆里创建对象。
然后我们就可以去去实例引用对象的属性方法。