java空指针问题~~~~~~~~~~~~~~~~~`

yqbboy 发布于 2012/12/22 09:28
阅读 565
收藏 0
昨天一HR问我  Java空指针在内存中是怎么个原理  ~~~ 大侠们   分析下呗   
加载中
0
震秦
震秦

Java中任何对象经过new后这个对象就存在了. 如: String str = new String("abc");

abc存在于堆中,  str在java虚拟机栈中存在一个向abc的引用地址.这个引用对象是Java中的Reference对象,楼主可查看java api中,软引用,虚引用,弱引用等....

空对象它的reference是没有的, 当调用这个对象的任何方法/属性都会发生空指针. 

希望对你有用.

0
红薯
红薯
这个HR有点不正经啊
loki_lan
loki_lan
回复 @yqbboy : null是不会分配内存的,哪来什么原理,日那个HR的嘴嘴吧。
yqbboy
yqbboy
什么意思啊????
0
震秦
震秦

引用来自“红薯”的答案

这个HR有点不正经啊
这类HR都在装. 别怕他
0
南湖船老大
南湖船老大
HR是啥?HR不是人力资源么?怎么问起他不懂的技术了呢
0
北京d路飞
北京d路飞
问题问得挺别扭。
莫非这个HR搞过嵌入式?
空指针的值一般是0,即指向的是0这个地址,内存里有这个地址,但这个地址是CPU启动的起始地址,不允许做其他操作,对数据地址来说,这就是一个非法地址。

Java使用的是虚拟机的伪地址,null也是0,也被定义为数据操作的非法地址,但这里的0地址干什么用就不清楚了。。
0
harris2016
harris2016

引用来自“震秦”的答案

Java中任何对象经过new后这个对象就存在了. 如: String str = new String("abc");

abc存在于堆中,  str在java虚拟机栈中存在一个向abc的引用地址.这个引用对象是Java中的Reference对象,楼主可查看java api中,软引用,虚引用,弱引用等....

空对象它的reference是没有的, 当调用这个对象的任何方法/属性都会发生空指针. 

希望对你有用.

学习了
0
醪糟儿蛋
醪糟儿蛋
此hr 不善言辞啊,词不达意
0
mtfan
mtfan
既然是HR问你的,你可以随便说,懂多少说多少麽,他一定懂得
0
m
mrlun

引用来自“震秦”的答案

Java中任何对象经过new后这个对象就存在了. 如: String str = new String("abc");

abc存在于堆中,  str在java虚拟机栈中存在一个向abc的引用地址.这个引用对象是Java中的Reference对象,楼主可查看java api中,软引用,虚引用,弱引用等....

空对象它的reference是没有的, 当调用这个对象的任何方法/属性都会发生空指针. 

希望对你有用.

“空对象它的reference是没有的, 当调用这个对象的任何方法/属性都会发生空指针. ”这句说的不怎么准确吧,应该是当一个引用没有指向任何对象时,即一个空引用,你操作它的时候就会抛异常

返回顶部
顶部