java中的实例化

java中的new用于实例化一个对象

T1 a= new T1();
T2 b= new T1();

区别:

问题1:不是实例化一个a,是实例化一个T1
T1 的一个 对象的引用 a  指向了堆空间里的一个新T1对象

------------------------------------------

new是java里面的关键字,一般用于创建一个新的对象。

T1 a=new T1():表示创建一个新的T1对象

T2 b=new T1():这种多用在接口类与实现类之间 或者子类与父类之间

在接口类与实现类之间: T2为接口类,T1为T2的实现类

例如:Collection,list,set,map都为接口类,都不能实例化。继承自他们的ArrayList,Vector,HashTable,HashMap,stack都是具体类,可以实例化

Map<String, String> map = new HashMap<String, String>

在子类与父类之间:T2为父类,T1为T2的实现类

这些用法都为java中多态性的一个表现

JAVA中都是用引用来操作对象,a是引用,new T1()是对象,T1 a = new T1()这段代码,则是将他们连接起来,这样就可以通过a来操作new T1()这个对象;

java的实例化过程

你要买一个苹果,售货员给你一个苹果;

你要买一苹果, 相当于 --------- Apple apple = null;
这个时候你并没有拿到苹果---------java没有给你申请内存,这个时候apple还什么内容都没有,只是告诉别人apple是个苹果

售货员给你个苹果 ----------apple = new Apple();
这个时候你拿到了苹果 ---------- java给你开辟了空间,并且apple可以使用苹果的特性,比如:apple.getPrice(),apple.getTaste()

这就是apple的实例化

原文地址:https://www.cnblogs.com/smuxiaolei/p/7716157.html