HashMap map= new HashMap(); Hashmap map=null;有什么区别?

来源:百度知道 编辑:UC知道 时间:2024/06/22 09:58:16
还有购物车,怎么添加商品对象的呢?
谢谢 各位 新手懂的不多
```````````````````````````````

HashMap map=new HashMap();
实例化一个HashMap对象,这是你可以对map进行任何操作,如put()等
HashMap map=null;
你声明一个HashMap变量,他没有指向任何对象,现在map是指向null的句柄对他操作会发生空指针异常,你需要为其赋值后在使用,可以用一个返回值为HashMap的方法或一个已经实例化的Map对象为其赋值。
购物车的问题你需要再详细说明一下

不知楼主是否了解JAVA内存机制
这个表示在JVM堆栈中创建一个句柄,并在堆内存中分配一块内存,然后该句柄引用到该内存。
HashMap map= new HashMap();

这个仅仅只在JVM堆栈中创建一个句柄
Hashmap map=null;

哎呀,这个瓜娃子,问得好。
两者都是实例化了 HashMap对象 map.
而前者,会在堆内存区给开辟空间,也就是相当于给map赋值了,经行了初始化。
而后者,没有在内存区给开辟空间,相当于没有给map赋值,map是空的

前者创建对象、分配地址,将该地址的引用赋值给对象
后者只是创建对象,地址为空(null)

购物车是一张表啊!把商品对象put至HashMap里,就是一个集合