博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实例说明Java中的null
阅读量:5794 次
发布时间:2019-06-18

本文共 751 字,大约阅读时间需要 2 分钟。

让我们先来看下面的语句:
  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 肯定是不可以存放任何对象的。
最新内容请见作者的GitHub页:http://qaseven.github.io/

转载地址:http://fsdfx.baihongyu.com/

你可能感兴趣的文章
从华为起诉三星 看中国知识产权建设
查看>>
CRM是未来公司的中心
查看>>
借大数据推动交易平台信息化
查看>>
河北保定力建“智慧城市”主城区免费WiFi覆盖
查看>>
赋能未来的昆腾全新Scalar存储平台
查看>>
“P2P已死”亦或“断臂重生”
查看>>
爱立信利用弹性RAN助力软银将东京火车站数据速率提升40%
查看>>
SAP成立新基金SAP.iO,用数千万美元投资使用SAP资源研发产品的创业公司
查看>>
信息泄露事件频发 快递行业的隐私面单之战
查看>>
上海服务外包中心设立全球第四个分中心
查看>>
浅析各国大数据审计工作现状
查看>>
智慧酒店浪潮迭起 智驿共享多重盈利法则
查看>>
神华15亿投薄膜太阳能:奇葩买卖or布局未来?
查看>>
爱立信完成印尼首次5G演示
查看>>
在巨大的体量面前 华为是如何保持高效的战斗力的?
查看>>
数据中心优先:英特尔公司描述数据驱动领域的愿景
查看>>
Java基本类型与对象类型的区别导致的Bug剖析
查看>>
Coverity谈“开发中测试”与程序员最常犯的编码错误
查看>>
竟然有这么多方法可以获得iphone5C的数据,FBI你高兴不?
查看>>
以测试为核心的软件开发过程
查看>>