`
lwy520
  • 浏览: 17585 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

[译文]在Java中究竟什么是null?

阅读更多

我们从下面的语句开始介绍:

String x = null;  

 1、这句代码究竟做了一件什么事情?

 

让我们回忆一下什么是变量,什么又是的值,一个变量类似一个盒子。正如你可以用一个框来存储的东西,你可以用一个变量来存储值。当声明一个变量,我们需要设置它的类型。

java有两大类型:原始类型和引用类型。一个原始类型存储值声明的变量,一个引用类型存储引用声明的变量。在这种情况下,初始化语句声明了一个变量“x”。x表示的是String的引用,它的是为null。

通过如下的图提供了有关这个概念更好的描述。

what-is-null

如果 “x=abc”,它看起来像这样的

variable-reference

2、NULL在内存中究竟是什么?

NULL在内存中究竟是什么?又或者在Java中null指的又是什么呢?

首先,null不是一个有效的对象实例,所以没有为它分配内存。它只是一个值,该值指示对象没有具体的引用。

jvm规范中是这样描述null的:

The Java Virtual Machine specification does not mandate a concrete value encoding null.『Java虚拟机规范并不要求一个具体的值编码为null。』

可以假设它是类似像在C语言的ITIS.(此处需要说的是,本人对C不了解,这里就不方便细说)

 

3、究竟X在内存又是什么?

现在我知道null是什么,我们知道一个变量是一个存储位置和相关的符号名(标识符),其中包含值。那么x究竟在内存中的什么位置呢?

通过阅读JVM 运行时数据区我们知道,既然每个方法都在线程的栈空间中有一个私有的栈帧,那么局部变量就存放在栈帧里面.

参考文献:

 

1. Variables, Operators, and Expressions
2. Variable

3. JVM Specifications

相关链接:

 

  1. What does a Java array look like in memory?
  2. Declaration, Initialization and Scoping for Java
  3. Notes from “Sun Certified Programmer for Java 6 Study Guide”
  4. String is passed by “reference” in Java

 

 

如果翻译不当,还请各位前辈多多指教。

分享到:
评论

相关推荐

    Java-for-Anylogic-user译文

    本资源原文为java-for-Anylogic-user英文版,即面向Anylogic用户的Java开发,本人纯手工翻译,讲述以拖放方式以外的编程思路,对于建立复杂系统有很大...这是一个信息论,可以在模型中进行数据操作以及智能体的搭建。

    java2007【搜狗文档翻译_译文_英译中】1

    虽然"java2007【搜狗文档翻译_译文_英译中】1"这个标题没有直接指出Java在Twitter中的具体作用,但可以推测Java可能在构建和分析Twitter的基础设施、数据处理和用户交互方面发挥了重要作用。微博客和社交网络分析的...

    有关java,jsp类论文可用的英文论文及中文译文

    在毕业设计中,Java和JSP的应用通常涉及到Web应用框架,如Spring MVC或者Struts,这些框架简化了开发流程并提高了代码的可维护性。Eclipse是一款流行的集成开发环境(IDE),支持Java和JSP的开发,提供了丰富的功能...

    java及web中英对照译文

    JavaServer Pages(JSP)是Java技术领域中用于构建动态网页的一种标准技术,由Sun Microsystems公司发起并由多家公司共同参与开发。JSP类似于微软的ASP技术,它允许开发者在HTML或XML文档中嵌入Java代码片段...

    探讨计算机软件开发的JAVA 编程语言应用.doc,原文+译文。

    Java编程语言在计算机软件开发中的应用 在计算机软件开发领域,Java编程语言因其独特的优势而被广泛应用。项目团队最初考虑使用C++进行程序编写,主要是因为C++的强大功能和灵活性。然而,在硬件资源极其有限的单片...

    JAVA外文文献+翻译.pdf

    JAVA外文文献+翻译.pdf 根据提供的文件信息,我们可以生成以下知识点: 1. JAVA语言的重要性 JAVA语言之所以重要,是因为它可以解决...JAVA语言的发展前景非常广阔,预计将在互联网上编程中扮演着越来越重要的角色。

    java外文文献

    在Java语言中,类和对象是基本的概念。类是一个模板,用于创建对象,对象是类的实例化。Java语言还引入了继承和多态的概念,继承使得子类可以继承父类的属性和方法,而多态使得对象可以根据不同的场景采取不同的行为...

    毕业论文 外文原文及译文

    译文中,作者会详细解释这些概念,并为读者提供选择合适数据引擎的指导,帮助他们理解在Access 2000中如何根据项目需求来做出最佳决策。这样的内容对于学习数据库管理和软件开发的学生来说,是非常有价值的参考资料...

    Java虚拟机规范 JavaSE7

    在翻译JVM规范的过程中,三位译者周志明、吴璞渊和冶秀刚为了提高作品的准确性和可读性,使用了通俗易懂的语言向读者介绍Java虚拟机的约束和运作原理。对于一些专业名词和技术术语,译者们保留了原文并在读者可能...

    译文质量估计中基于Transformer的联合神经网络模型.pdf

    实验结果表明,本文模型在CWMT18译文质量估计任务中的性能优于其他对比模型。该结果证明了本文模型的有效性。 6. 应用前景 本文模型可以广泛应用于机器翻译领域,例如机器翻译系统中译文质量估计、翻译后编辑等。该...

    Generics_in_the_Java_Programming_Language译文

    Java 中的泛型是 Java 5(JDK 1.5)中引入的一项新特性,旨在解决类型安全和代码重用的问题。泛型允许程序员对类型进行抽象,使得代码更加灵活和可维护。 泛型的优点: 1. 类型安全:泛型可以在编译期检查类型的...

    基于JAVA的蓝牙无线技术研究.doc,原文+译文。

    在本篇论文“基于JAVA的蓝牙无线技术研究”中,作者探讨了无线通信领域中的一个重要分支——蓝牙技术,以及如何利用Java为移动设备构建蓝牙应用。这篇毕业设计的外文原文与译文提供了深入理解这一主题的基础。 1.1 ...

    外文翻译(含原文、译文及出处) 适用于用Java做毕业设计的同学

    在Java编程语言中进行毕业设计时,理解和应用对象导向编程(Object-Oriented Programming, OOP)的概念至关重要。本文将围绕“外文翻译”提供的内容,深入探讨对象、抽象及其在Java中的应用。 《对象的引入》...

    Java虚拟机规范(Java_SE_7).pdf中文版

    翻译者在翻译过程中,努力确保作品的准确性和可读性,力求在保证语义准确的前提下,使用通俗易懂的语言向读者介绍Java虚拟机的约束与运作原理。在专有技术名词和偏僻词汇中保留了原文,并在难点处添加了“译者注”...

    JAVA英语单词.pdf

    本资源是一个 Java英语单词大全,涵盖了Java开发中常用的英语单词。总共分为十三章,每章都包含多个英语单词,并且都带有解释和示例。 第一章:基本概念 * public:公共的、公用的 * static:静的、静态的、静止的...

    JAVA/JSP的英文参考文献及翻译

    JAVA/JSP 方面通用的英文参考文献及翻译是 IT 行业中一个非常重要的知识点。下面我们将从技术发展历史、JSP 技术特点、JSP 和数据库相关知识、JavaBean 相关内容等几个方面来详细介绍 JSP 相关知识点。 1. 技术发展...

Global site tag (gtag.js) - Google Analytics