未将对象引用到实例
来源:互联网 发布:python前端开发框架 编辑:程序博客网 时间:2024/06/10 21:58
对象为null时调用给对象的属性或方法
“未将对象引用到实例”是很多像我一样的初学者经常遇到的一个问题,常常令人烦恼不已,那么这个问题是怎么发生的呢?先给大家看一张图,我们从这张图入手来分析这个错误造成的原因。
可能很多人看到这样的代码会觉得可笑:”能写出这样的代码,看来此人的智商已“超越”人类的范畴了!“
但是就是有某些内裤外穿的超人叔叔经常不间歇性的写出这样的代码、遇到这样的问题。
从这张图上我们很容易看出Too.f1.array[i]是为null的,这时我们调用它的属性或方法是肯定会报错的!那为什么当对象为null时调用它的属性或方法会报错呢?
我们都知道数组是引用类型,引用类型的数据值会存放在堆内存中在栈中存储的只是一串内存地址如图所示:
通过这张图我们可以看到它的属性是存放在堆内存中的,而对象为null就是指该对象没有在堆内存中开辟空间,也就没办法通过栈内存访问到存放在堆内存中的属性,所以系统运行时就会提示错误。
引用类型数据赋给另一个同类型引用类型数据所带来的问题
我们再来看一张图:
初看这多代码好像并没有什么“不妥”,语法上也没报错!但是运行时却出现了未将对象引用到实例的问题附图一张:
这又是怎么回事呢?我们前面说过栈内存中存储的是一串堆内存的内存地址。而sb=txt只是将数组txt在堆内存中的内存地址赋给了数组sb也就是说数组txt和数组sb在栈内存中存储的堆内存的内存地址是一样的,而txt[0]=null也就是将txt【0】对应的在堆内存中的空间给删除,而数组txt和数组sb是共用一样的堆内存中的内存地址所以数组sb【0】也没有对应的堆内存的内存空间所以会在运行时报错,原理请参照对象为null时调用给对象的属性或方法
阅读全文
0 0
- 未将对象引用到实例
- 未将对象引用到实例原因
- Session 未将对象引用到实例
- 未将对象引用到实例
- 未将对象引用设置到对象的实例"
- 未将对象引用设置到对象的实例
- 未将对象引用设置到对象的实例
- session未将对象引用设置到对象的实例
- ado未将对象设置引用到对象实例
- 未将对象引用设置到对象的实例
- 未将对象引用到对象实例的困惑
- 未将对象引用设置到对象的实例
- ConfigurationManager:未将对象引用设置到对象的实例。
- 未将对象引用设置到对象的实例 解决办法
- 未将对象引用设置到对象的实例
- 未将对象引用设置到对象的实例
- 未将对象引用设置到对象的实例 原因
- 未将对象引用设置到对象的实例
- 月饼如何高速有效的销售?
- nginx+tomcat 初学
- JDBC数据库连接
- 三,操作符,表达式与赋值
- 光环国际PMP:项目经理如何回答“这个项目要多久完成?”
- 未将对象引用到实例
- 手机截屏并用Dialog展示
- JVM调优中经常用到的几个命令
- HTTP消息头中的“Cache-control”介绍
- c++智能指针
- pip 直接安装tar.gz zip文件包 (windows linux mac 可用)
- jquery获取第一层li元素
- php微信移动支付,退款,回调函数
- 奥威Power-BI For金蝶用友标准BI解决方案 --人员流动分析