关于null和空指针异常
1,null是一个标识符,用来表示不确定的对象,可以将null赋给引用类型变量,但不可以将null赋给基本类型变量
2,null本身不是对象,也不是object的实例,也不知道是什么类型
3,对于集合
list:允许重复元素,可以放任意个null
set:不允许重复,最多加入一个null
map:map的key对多加入一null
举例:调用一个实际为null的对象的属性或方法 就会有空指针异常.就是一个空对象 点 调用方法就会抛出这个异常 eg:
Object obj = null;
obj.toString();
valueOf()和toString() 因为调用null对象的toString()会抛出空指针异常,如果我们能够使用valueOf()获得相同的值,那宁愿使用valueOf(),传递一个null给valueOf()将会返回“null”,
Object的equals方法是方法是对称的,调用a.equals(b)和调用b.equals(a)是完全相同的,这也是为什么程序员对于对象a和b这么不上心。但是要注意a == null时会抛出空指针异常
关于null和空指针异常的更多相关文章
- Java中equals方法null造成空指针异常的原因及解决方案
正文 bug描述 当查找已修改的与未修改的做比较的时候,之前为null的值调用equals方法与其他值做比较的时候,会导致抛出空指针异常 知识补充 关于null,你不得不知道的几件事: 1.null是 ...
- List对象遍历时null判断
使用for循环遍历list处理list元素时,对null值判断: 1.list为null时空指针异常 2.list不为空,但是list.size()=0时,不执行for循环内代码块 3.list.si ...
- 会话技术( Cookie ,Session)
会话技术: 会话:浏览器访问服务器端,发送多次请求,接受多次响应.直到有一方断开连接.会话结束. 解决问题:可以使用会话技术,在一次会话的多次请求之间共享数据. ...
- 黑马程序员——JAVA基础之多态与Object
------- android培训.java培训.期待与您交流! ---------- 多态 : 多态定义: 某一类事物的多种存在形态. 多态的体现: 父类的引用指向了自己的子类对象. ...
- 01-Java学习笔记
本系列笔记由常彦博整理,请知悉 目 录 一. Java技术基础.................................................................... ...
- 8.23.2 IO-输入输出规范代码
文件路径4种写法: 相对路径,相对当前而言,在当前路径下找: String filePath = "temp01"; 绝对路径: String filePath = " ...
- 别再写 bug 了,避免空指针的 5 个案例!
空指针是我们 Java 开发人员经常遇到的一个基本异常,这是一个极其普遍但似乎又无法根治的问题. 本文,栈长将带你了解什么是空指针,还有如何有效的避免空指针. 什么是空指针? 当一个变量的值为 nul ...
- JavaSE| 面向对象的三大特征
1.面向对象的基本特征之一:封装Encapsulation 目的:隐藏实现细节,让使用者方便,让代码更安全 将对象的属性和行为封装起来,其载体就是类.类通常对客户隐藏其实现细节,这就是封装的思想. 封 ...
- Java异常学习总结二
异常的处理方式 方式一:捕获异常(try-catch-finally) 捕获异常是通过三个关键词来实现的:try-catch-finally.用try来执行一段程序,如果出现异常,系统抛出一个异常,可 ...
随机推荐
- sofa
来源:http://fangpeng123456789.iteye.com/blog/2172745 sofa app: biz:业务实现层(业务类型) common: ...
- Java:面向对象的编程语言
java是面向对象的编程语言 Object,就是指面向对象的对象,对象就是实例. 在java里,对象是类的一个具体实例.就像:人,指一个类.你.我.他.张三.李四.王五等则是一个个具体的实例,也就是j ...
- 利用数据结构排序的priority_queue
考虑以下几个问题: 将一个序列排序 某神仙: \(\mathtt{sort}\) !!! 每次取出最前面的两个数 某神仙: \(a_i\) 和 \(a_{i+1}\) 啊!! 相加,再加入序列 某神仙 ...
- 【做题笔记】P1969 积木大赛
非常感谢 rxz 大佬提供的思路. 首先放个图(rxz 画的) 采用贪心的策略:对于一个期望高度 \(h_i\) ,如果大于 \(h_{i-1}\),那么最终答案要加上二者之差:如果小于或等于,那么说 ...
- kuangbin专题 专题九 连通图 POJ 1236 Network of Schools
题目链接:https://vjudge.net/problem/POJ-1236 题目:有向图,有若干个连通图,点之间有单向边边就可以单向传递信息,问: (1)至少需要发送几份信息才能使得每个点都传递 ...
- C# virtual 函数
C# virtual 是虚拟的含义,在 C# 语言中,默认情况下类中的成员都是非虚拟的,通常将类中的成员定义成虚拟的,表示这些成员将会在继承后重写其中的内容. virtual 关键字能修饰方法.属性. ...
- 【Python】 运算符
什么是运算符? 本章节主要说明Python的运算符.举个简单的例子 4 +5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. 接下来让我们一个个来学习Pytho ...
- C语言报错:“gets”: 找不到标识符。解决方法
C语言报错:“gets”: 找不到标识符. 把“gets”改成“gets_s”即可.
- Centos6.10-FastDFS-Storage-Nginx配置
nginx+fastdfs-nginx-module 安装此处省略. 1.进入工作目录 cd /usr/local/nginx/conf 2.创建子目录 mkdir configs 3.创建stora ...
- N个数求和(PTA)
这题多输出了一个空格,卡了半天... leetcode刷多了,后遗症 这题可以用scanf("%lld/%lld"),直接读入,不过我用了stoll,也就是stoi,string ...