实例说明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 肯定是不可以存放任何对象的。

最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
1月前
|
Java 程序员
Java 异常处理与正则表达式详解,实例演练及最佳实践
在 Java 代码执行期间,可能会发生各种错误,包括程序员编码错误、用户输入错误以及其他不可预料的状况。 当错误发生时,Java 通常会停止并生成错误消息,这个过程称为抛出异常。 try...catch 语句 try 语句允许您定义一段代码块,并在其中测试是否发生错误。 catch 语句允许您定义一段代码块,当 try 块中发生错误时执行该代码块。 try 和 catch 关键字成对使用,语法如下:
42 0
|
1月前
|
存储 Java
Java 编程实例:相加数字、计算单词数、字符串反转、元素求和、矩形面积及奇偶判断
Java中相加两个数字可通过简单赋值实现,如`int sum = x + y;`。若要用户输入数字相加,可使用`Scanner`类读取。计算单词数,可使用`split()`方法或`StringTokenizer`类。反转字符串,可用`for`循环或`StringBuilder`的`reverse()`方法。计算数组元素总和,可遍历数组累加。矩形面积通过长度乘以宽度得出。判断奇偶性,利用模2运算或位运算检查最低位。更多内容,可关注微信公众号`Let us Coding`。
49 0
|
1月前
|
Java
java面向对象高级分层实例_实体类
java面向对象高级分层实例_实体类
10 1
|
12天前
|
Java Shell
Java 21颠覆传统:未命名类与实例Main方法的编码变革
Java 21颠覆传统:未命名类与实例Main方法的编码变革
13 0
|
1月前
|
Java
java面向对象高级分层实例_测试类(main方法所在的类)
java面向对象高级分层实例_测试类(main方法所在的类)
10 1
|
1月前
|
Java 数据库
java面向对象高级分层实例_数据库操作类
java面向对象高级分层实例_数据库操作类
11 1
|
1月前
|
Java
java面向对象高级分层实例_BaseDao
java面向对象高级分层实例_BaseDao
13 1
|
1月前
|
Java
JAVA——List中剔除空元素(null)的三种方法汇总
JAVA——List中剔除空元素(null)的三种方法汇总
|
1月前
|
Java
Java类的定义与对象使用实例
Java类的定义与对象使用实例
16 3
|
2月前
|
数据采集 Java 数据库
我想再学一次Java三种循环结构哦---【开发实例】
我想再学一次Java三种循环结构哦---【开发实例】
32 0
我想再学一次Java三种循环结构哦---【开发实例】