Java 中的 null 是什么

createh522小时前技术教程4

我们从一个语句声明开始:

String s = null;

回想一下什么是变量,什么是值。一个常见的比喻是将变量类比为盒子。就像可以使用盒子来装东西一样,也可以使用变量来存储值。声明变量时,我们需要设置其类型。

Java有两种主要类型:基本类型和引用类型。原始类型的变量存储值;引用类型的变量存储引用。在这种情况下,初始化语句声明变量“ x”。“ x”存储字符串引用,引用为 null

下图可以更好的理解:


如果 x = "abc", 那么应该如下图所示:

那么内存中的null 是什么,或者说 Java 中的 null 是什么?

首先,它不是一个有效的对象实例, 因为没有为 null 分配内存,它只是一个值,用于指示对象还未被初始化。

而JVM 虚拟机规范中,也没有明确规定 Java 的 null 具体应该是什么。

但一般来说, Java 中的 null 与其他 类C 语言一样,都是零值

那么 null 具体存放在哪呢?

在 Java 中,变量是存放在局部变量区的,变量引用的对象则是存放在堆上。当变量声明为 null 时, JVM 为变量在栈上分配一个地址,它的值为零,由于没有引用任何对象,因此堆上不存在对应对象。

因此x 真正的图像应是这样

相关文章

Java变量详解

在Java中,变量是存储数据的基本单元。每个变量都有一个特定的数据类型,用于定义它可以存储的数据种类和大小。变量声明和初始化在 Java 语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:t...

详解 Java 中的变量

网上罗列了很多关于变量的理解,良莠不齐,不知道哪些是对的,哪些是错的。所以笔者索性就这些博客和自己的理解写出这篇文章,如果有不对的地方,希望读者能够指正,感谢。变量是我们经常用到的一种,我在刚学 Ja...

Java变量

编者按计算机能够直接识别的是二进制流,原始的程序设计都是基于二进制方式设计的。随着计算机语言的发展,计算机编程越来越偏离二进制方式;为什么会这样呢?理由很简单,程序是人来编写、阅读和维护的!变量是编程...

数据必学Java基础(十一):变量和常量详细讲解

#头条创作挑战赛#变量和常量举例:丽丽的年龄:去年17岁,今年18岁,明年19岁年龄:17--》18---》19 --》值不断变化年龄---》变量常量: 17 , 18 , 19 ----》 常量中的...

Java类和对象的概念

Java是一门面向对象的编程语言,理解Java,首先要理解类与对象这两个概念。Java中的类可以看做C语言中结构体的升级版。结构体是一种构造数据类型,可以包含不同的成员(变量),每个成员的数据类型可以...

Python变量是怎么定义和使用的?本文详解

任何编程语言都需要处理数据,比如数字、字符串、字符等,我们可以直接使用数据,也可以将数据保存到变量中,方便以后使用。变量(Variable)可以看成一个小箱子,专门用来“盛装”程序中的数据。每个变量都...