关于java里的null



null 很难定义是什么?

首先它肯定不是基本类型,因为

int a = null;

  这样的表达式是不能编译通过的。

虽然

Object foo = null;

可以轻松通过编译,但不能证明null是某个引用类型的实例

因为我们找不到任何对象类型,即使基本类型,也可以得到类型,甚至void也是。

但jdk中找不到任何类型可以说明null是什么。


null有个很明显的特征,可以赋值给任何类型的引用,看起来好像,null可以是一个任意引用类型的实例

但jdk中不存在一个类型是任意引用类型的子类型。


null之所以创造出来是为了让引用有个默认值,基本类型,可以默认为0,false,等,引用类型呢?只能创造出这么一个怪异的null,作为引用的初始值,就像0。
对象初始状态是无,这个状态被表达为null。

所以其实null是一个无奈产物。但我想它并不是表达某个事物是否存在,

那才是guava的optional设计的初衷

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值