qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

实例说明Java中的null

 让我们先来看下面的语句:
  String x = null;
  1. 这个语句到底做了些什么?
  让我们回顾一下什么是变量,什么是变量值。一个常见的比喻是 变量相当于一个盒子。如同可以使用盒子来储存物品一样,您可以使用一个变量来存储一个值。当声明一个变量时,我们需要设置其类型。
  在Java中变量分为两大类型: 原始值(primitive)与引用值(reference).
  声明为原始类型的变量,存储的是实际的值;声明为引用类型的变量,存储的是实际对象的地址(指针,引用).
  在上面的语句中, 初始化语句定义了一个变量 "x". x中存放的是String引用,此处为 null.
  下图对此概念提供了更形象的说明:
  
  如果 x = "abc",则引用示意图如下:
  
  2. 在内存中null具体是什么?
  在Java中 null 值是什么,在内存中null是什么?
  首先需要明确,null不是一个合法的object实例,所以并没有为其分配内存.
  null 仅仅用于表明该引用目前没有指向任何对象。
  我们看看 JVM规范 的描述:
  Java虚拟机规范并不强制要求使用一个具体的值编码null。
  我认为和其它类C语言一样,null是对引用变量的值全部置0。
  译者注: Java对象的属性域默认初始化其实很简单,把分配的内存所有位全部置0,所以 数字是0, boolean是false, 浮点是 0.0f, 引用是 null, 因为引用是内存地址,所以可以推测出 null 实际上就是一堆0. 用鼠标手想一想也就明白, 地址 0 肯定是不可以存放任何对象的。

posted on 2014-08-27 10:37 顺其自然EVO 阅读(162) 评论(0)  编辑  收藏 所属分类: 测试学习专栏


只有注册用户登录后才能发表评论。


网站导航:
 
<2014年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜