比较
python
is, is not 对比的是两个变量的内存地址
==,!= 对比的是两个变量的值
3 == 3 √
3 is 3 √
None is None √
None == None √
[1,2] ==[1,2] √
[1,2] is [1,2] ×
java
基本数据类型:值分配在内存栈上 引用数据类型:对象本身的值分配在内存堆上 都是直接分配在内存栈上,不过引用数据类型在栈上分配的是引用,对象本身的存储在内存堆上
- 比较基本类型 : 没有.equals方法
只能用==
- 比较对象 object.equals(obj) 比较内存地址
==和equals比较的都是内存地址
- 比较基本数据类型封装类和String
对equals方法进行了重写,比较的是值
equals判断值是否相同 a.equals(b)
==判断是否为同一对象(根据内存地址),引用是否相同
null
python
if root: #root 存在
if not root # root不存在 为null
java
if (p!=null) //root存在
if (p==null) //root不存