首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于字符串的java基础知识

关于字符串的java基础知识
EN

Stack Overflow用户
提问于 2009-08-30 06:45:19
回答 10查看 681关注 0票数 1

字符串类型的变量被自动初始化为什么值?

EN

回答 10

Stack Overflow用户

发布于 2009-08-30 06:47:58

null

除非它在一个方法(局部变量)中,在这种情况下,它不会被声明为任何东西。

票数 8
EN

Stack Overflow用户

发布于 2009-08-30 07:01:33

以下是Martin v. Löwissilky发布的答案摘要。

关于String对象的初始化,我们可以这样说:

  • 如果String是一个局部变量,则它不会被初始化。如果String是一个类变量、实例变量或数组组件,则它将被初始化为

理由如下:

根据The Java Language Specification, Third Edition的说法,由于类型为String的变量是引用类型,因此Section 4.12.5: Initial Values of Variables会这样说:

程序中的每个变量在使用它的值之前都必须有一个值

关于引用类型的初始化,它接着说了以下内容:

对于每个类变量、实例变量或数组组件,在创建时都会使用默认值进行初始化(§15.9、§15.10):

    • 删除了有关不相关的所有引用类型的信息(§4.3),默认值为null.

最后,关于局部变量的如下内容:

  • 局部变量(§14.4,§14.14)在使用之前必须通过初始化(§14.4)或赋值(§15.26)显式赋予一个值,其方式可由编译器使用确定赋值规则(§16)进行验证。
票数 5
EN

Stack Overflow用户

发布于 2009-08-30 06:55:08

如果变量是类变量、实例变量或数组组件,则将其初始化为null (因为引用类型的默认值为null)

如果变量是一个局部变量,那么必须显式地给它一个值(即在这种情况下它没有默认值)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1353264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档