黑马程序员技术交流社区
标题:
帮忙读读这个程序
[打印本页]
作者:
林康春
时间:
2012-7-18 23:47
标题:
帮忙读读这个程序
ublic class Demo7 {
public void nullMethod(Object obj) {
System.err.println("object");
}
public void nullMethod(String str) {
System.err.println("string");
}
public static void main(String[] args) { O
Demo7 t = new Demo7();
t.nullMethod(null);
}
}
/*
疑问:
程序是如何执行的?
1、 System.err 这里是打印什么来的?
2、 null 值匹配的对象类型?
3、 注释调用第一个nullMethod 运行查看结果?
4、 解读以下程序:
String str = null;
for(int i = 0; i < 5; i++){
str+=i;
}
*/
作者:
张世威
时间:
2012-7-19 01:04
疑问:
程序是如何执行的?
1、 System.err 这里是打印什么来的?
2、 null 值匹配的对象类型?
3、 注释调用第一个nullMethod 运行查看结果?
4、 解读以下程序:
String str = null;
for(int i = 0; i < 5; i++){
str+=i;
}
*/
1、System.err:用来向控制台输出错误信息的
2、null表示给str分配了内存,这块内存用来存放str指向对象的地址,而现在不需要给str指向任何对象,所有用null标记
这块内存里面没有存放任何对象的地址。
安装我的推理,null里面存放的是一个特性的值,这个值所对应的地址不存在。当程序使用这个值寻找对应的对象时,发现这个地址根本到不了,坑爹了,就会抛出空指针异常,意思就说我找不到这个对象。
null.JPG
(53.59 KB, 下载次数: 27)
下载附件
2012-7-19 00:57 上传
3、null表示无法到达的地址空间,就像教室里面课桌的编号为1-50,来了一位新同学小明,老说:小明,你到100号座位上去。小明满教室找,发现没有100号桌位,这是后,他就郁闷了,跟老说说:找不到说的桌位。
为了方便,用null来表示除了1-50直接的任何值,
if(x<1||x>50){
x=null;
}
这样看来,null是一个字符串标识符好,
4、str+=i: 小明还没有找到他的100号座位,老说就叫他把书包放到100号座位里面,可能吗?
str的空间不存在,怎么往这个不存在的空间放东西呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2