List初始化是否为 null?

Jack-Fang 2011-03-21 02:34:24

import java.util.*;

class test{
private int a;

public int getA() {
return a;
}

public void setA(int a) {
this.a = a;
}
}

public class ListTest {
public static void main(String args[]){
List list_one = new ArrayList();
if(list_one.size()==0)
System.out.println("我是list_one,我的长度为0");
if(list_one==null)
System.out.println("我是list_one,我等于null");

List list_two = new ArrayList<test>();
if(list_two.size()==0)
System.out.println("我是list_two,我的长度为0");
if(list_two==null)
System.out.println("我是list_two,我等于null");

}

}

输出的只是
我是list_one,我的长度为0
我是list_two,我的长度为0


我还没往list里add东西,为什么它不为null呢?
...全文
837 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jack-Fang 2011-03-21
  • 打赏
  • 举报
回复
哈哈 明白了~
火速结贴 谢谢大家~~~
fengke01242010 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 crystalangle 的回复:]
List list_one = new ArrayList();
你这句话已经为list_one创建了实例,jvm已经为list_one分配了空间,只是列表中没有元素

List list_one = null;
这句话只是声明了一个List,并未分配空间,是一个空的引用,此时如果你使用list_one.size()就会报空指针异常
[/Quote]说的有道理
shilyj7 2011-03-21
  • 打赏
  • 举报
回复
楼上讲的很精彩啊~
建议楼主去了解下堆内存与栈内存……
axie534 2011-03-21
  • 打赏
  • 举报
回复
当你声明List list_one;的时候 这时候 list_one为null;
List list_one=new ArrayList();这个时候list_one部位null

告诉你最好辨别方法 :
当妈妈怀上孩子的时候 就相当于声明了 List list_one;
孩子落地 就相当于 List list_one=new ArrayList();这时才是存在的
Spring89 2011-03-21
  • 打赏
  • 举报
回复
new一个肯定不会为空了,否则当你调用add()时就会出现著名的java.lang.NullPointerException
开发者_android 2011-03-21
  • 打赏
  • 举报
回复
new 后就分配空间,list有默认的分配空间,还没有存放时里面是没有对象的
zuxianghuang 2011-03-21
  • 打赏
  • 举报
回复
null 是指对象还没在内存里开辟空间
zhouluok007 2011-03-21
  • 打赏
  • 举报
回复
你只要New了 系统内存会就会给你分配空间, 就不会指向空地址, 集合中没有元素并不代表集合为null
Nodin 2011-03-21
  • 打赏
  • 举报
回复
List list_one = new ArrayList();
你这句话已经为list_one创建了实例,jvm已经为list_one分配了空间,只是列表中没有元素

List list_one = null;
这句话只是声明了一个List,并未分配空间,是一个空的引用,此时如果你使用list_one.size()就会报空指针异常
钱成军 2011-03-21
  • 打赏
  • 举报
回复
List list_one = new ArrayList();意思就是创建一个ArrayList对象,里面有0个对象。
loveofmylife 2011-03-21
  • 打赏
  • 举报
回复
楼主不清楚null是啥啊
null是不存在这个对象
你已经new了一个list,所以这个引用不为NULL

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧