没有二次分配内存吧!
Employee[] staff =new Employee[3];
这时候只是说明了staff是元素类型为Employee,长度为3的数组;并没有真正分配三个Employee所需的空间:
staff-> __________
staff[0] |_________|
staff[1] |_________|
staff[1] |_________| 这是只分配了这些空间,每个空间都只能存储一个指向Employee对象的引用; 此时,值均为null;
当执行staff[0]= new Employee(...)后:
staff-> __________ ___________
staff[0] |_xxxx____|-> |____yyxx__| Exployee对象的空间;
staff[1] |_________|
staff[1] |_________|
staff[0]中的xxxx代表指向Exployee的引用(或叫指针);现在才真正为Exployee 的对象分配了空间!
初学,不正确的请高手指教!
Employee[] staff =new Employee[3];
这时候只是说明了staff是元素类型为Employee,长度为3的数组;并没有真正分配三个Employee所需的空间:
staff-> __________
staff[0] |_________|
staff[1] |_________|
staff[1] |_________| 这是只分配了这些空间,每个空间都只能存储一个指向Employee对象的引用; 此时,值均为null;
当执行staff[0]= new Employee(...)后:
staff-> __________ ___________
staff[0] |_xxxx____|-> |____yyxx__| Exployee对象的空间;
staff[1] |_________|
staff[1] |_________|
staff[0]中的xxxx代表指向Exployee的引用(或叫指针);现在才真正为Exployee 的对象分配了空间!
初学,不正确的请高手指教!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货