Java 中的 null 是什么

createh54个月前 (01-16)技术教程39

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

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量与变量的区别

常量:其值不变即为常量。语法: 数据类型 常量名 = 值; double PI = 3.14;备注: 一般默认常量名大写。变量与常量之间关系(量间关系)先来一个简单的实例,好了解 Java 里变量与常...

什么是 Java 注解?

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!作者| 慕课网精英讲师 ColorfulC通过本篇文章你将了解什么是注解,注解的作用,Java 中内置注解有哪些以及注解的分类,...

Java变量运算

Java变量运算描述运用 Java 变量计算圆柱体积。题目编写程序,读入圆柱体的半径和高,并使用下列公式计算圆柱的体积:面积?=?半径?×?半径?×?P?体积?=?面积?×?高??题目解决思路创建 扫...

深入解析 Java 反射实现机制

01、什么是反射?反射 (Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。Oracle 官方对反射的解释是:Reflec...

java环境变量设置

当我们需要使用Java进行程序开发时,首先必须安装jdk,然后根据jdk的安装目录配置Java环境变量,那么如何来配置Java环境变量呢?本篇文章再来详细为大家解答一下java环境变量如何配置等相关问...