`
_春眠不觉晓
  • 浏览: 2247 次
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java标识符、关键字、Boolean字面量和空字面量的探讨

阅读更多

    时不时有人纠结true、false和null到底是不是java关键字(keyword),出于很多笔试题的基础部分总会出现这种选择题,还有很多书籍给出的关键字列表也有出入,所以虽然是太过于理论性的知识,也有很多人关注。

 

    首先给出结论,true、false和null三个全不是关键字(虽然很多面试题和书籍将其中全部或一部分列为关键字--如java核心技术第8版英文版附录将null列为关键字),其中true和false是Boolean字面量,null是空的字面量。


    下面来给出原因:
    1、很多人认为它们三个是关键字原因出于以下两点:
    ①普遍书籍给的标识符定义:Java标识符由数字,字母和下划线(_),美元符号($)组成。Java区分大小写,且首位不能是数字。Java关键字不能当作Java标识符 (整理自百度百科,印象中在大学和培训机构里学习时也是这么定义的。但是这是不完善的)。所以很多人由此来判断,true、flase和null并不能当标识符使用(若使用编译器会报错),所以他们是关键字。


    ②在IDE里,如Eclipse中打出true、false和null是蓝色加粗状态和其他关键字一样,所以他们是关键字。

    首先探讨观点①,查阅Java语言规范的官方文档,看一下标识符的完整定义:

http://docs.oracle.com/javase/specs/jls/se5.0/html/lexical.html#3.8 写道
3.8 Identifiers
An identifier is an unlimited-length sequence of Java letters and Java digits, the first of which must be a Java letter. An identifier cannot have the same spelling (Unicode character sequence) as a keyword (§3.9), boolean literal (§3.10.3), or the null literal (§3.10.7).

     可以看到最后一句话:Java关键字,布尔字面量和空字面量不能作为标识符


     然后看观点②:是因为关键字和布尔字面量、空字面量都不能作为关键字所以才在IDE中加粗显示的,而不是加粗显示的都是关键字。

   2、我们再来看一下Java关键字的标准定义,摘自Java语言规范官方文档:

http://docs.oracle.com/javase/specs/jls/se5.0/html/lexical.html#3.9 写道
3.9 Keywords
The following character sequences, formed from ASCII letters, are reserved for use as keywords and cannot be used as identifiers (§3.8):

Keyword: one of
abstract continue for new switch
assert default if package synchronized
boolean do goto private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while


The keywords const and goto are reserved, even though they are not currently used. This may allow a Java compiler to produce better error messages if these C++ keywords incorrectly appear in programs.

While true and false might appear to be keywords, they are technically Boolean literals (§3.10.3). Similarly, while null might appear to be a keyword, it is technically the null literal (§3.10.7).

 


   里面清楚地写道:Java包括50个关键字和2个保留关键字,共52个,其中true和false看上去虽然像关键字,但是它们是布尔字面量,null虽然看上去也像关键字,但它是空字面量。

   所以,我们现在可以得出结论,Java有52个关键字(50+2),true、false和null不是关键字。

   虽然总结这些没有什么实际意义,只是理论上的概念,这种知识点太过边边角角,不知道这些完全不妨碍你成为一个技术牛人,但是我认为这是一个态度的问题,如果有严谨的学习、工作态度,不是遇到这些问题时只是听别人怎么说就是什么,或者简单的在网上查阅下资料,自己去查阅文档,学习探讨下,也不至于有很多的书籍,授课内容,和企业面试题都是不完善、错的。

    最后总结这些只是满足下自己的强迫症,作者菜鸟,以上文字若有问题,烦请指正。

3
2
分享到:
评论
4 楼 ufoqhmdt 2012-09-29  
意义还是有的.严谨确实很重要.态度是关键.这说明你学习很仔细.也说明现在很多书籍教授的东西很教条.也许通过这个已经说明了还会有更多其它比这个问题更严重的误导人的错误存在.值得深思!
3 楼 ifox 2012-09-28  
学习下,最后一段十分赞成。要有严谨的思想。
2 楼 浮华人生 2012-09-28  
没注意过这事 
1 楼 freezingsky 2012-09-28  
确实没什么意义,当是扫盲!

相关推荐

    JAVA标识符关键字和数据类型.ppt

    "JAVA标识符关键字和数据类型" JAVA标识符关键字和数据类型是Java语言的基础知识点,包括标识符、关键字、数据类型等。 标识符 在Java语言中,对各种变量、方法和类等要素命名时使用的字符序列称为标识符。Java...

    JAVA标识符关键字和数据类型PPT教案学习.pptx

    "JAVA标识符关键字和数据类型PPT教案学习.pptx" 本PPT教案主要讲解了Java语言中的标识符、关键字和数据类型等知识点。 标识符是Java语言中最基本的组成部分,它是指在Java程序中使用的名字,用于命名变量、方法、...

    JavaSE基础(标识符+关键字+字面量+数据类型+类型转换+修饰符+代码块+方法重载+this关键字等)

    JavaSE基础是学习Java编程的重要部分,涵盖了标识符、关键字、字面量、数据类型、类型转换、修饰符、代码块、方法重载、this关键字等多个核心概念。 首先,标识符是程序中用来命名类、方法、变量等的符号,遵循特定...

    Java基础标识符关键字数据类型PPT教案学习.pptx

    Java 基础标识符关键字数据类型 Java 语言中的关键字是 Java 语言规定的具有特定含义的标识符,它们对 Java 的编译器有特殊的意义,用来表示一种数据类型,或者表示程序的结构等。Java 关键字一律由小写英文字母...

    Java编程 标识符和关键字

    Java 编程标识符和关键字 标识符是 Java 编程语言中的一种基本组成部分,它是指在 Java 源文件中,包、类、接口、变量、常量或方法的名字。标识符必须遵守一定的命名规则,例如标识符的首字符必须是字母、下划线“_...

    002-标识符和关键字_java_标识符和关键字_

    在实际编程中,应尽量遵循最佳实践,如使用有意义的标识符名称,避免使用Java关键字作为标识符,以及合理利用关键字实现程序的逻辑控制。通过良好的命名习惯和对关键字的恰当运用,可以提高代码的可读性和维护性。

    Java标识符、关键字和保留字

    5. `true`、`false`和`null`不是Java关键字,它们是布尔类型和null类型直接量,但它们属于标识符。 6. 不要将Java的关键字与类名或变量名混淆,例如`class`是一个关键字,表示类的定义。 关键字的分类和用途: - ...

    Java标识符、关键字和数据类型

    Java编程语言的基础构建块之一是标识符、关键字和数据类型,这些都是编程时不可或缺的部分。 **标识符**在Java中是用来命名变量、类、方法等的标识。一个有效的标识符必须以字母、下划线(_)或美元符号($)开头,...

    Java编程详细教程标识符关键字数据类型下PPT教案学习.pptx

    总的来说,理解和掌握Java的标识符、关键字、数据类型、变量作用域、参数传递等基础概念,是进行Java编程的基础,也是成为一名合格的Java开发者的重要步骤。通过不断地练习和实践,你可以更深入地理解和运用这些知识...

    基础标识符关键字数据类型PPT课件.pptx

    3. 不能使用Java关键字作为标识符,因为它们已经被语言本身赋予特定含义。 Java的关键字是预定义的,对编译器有特殊含义的标识符。它们主要用于定义数据类型、控制程序流程、修饰符以及类和接口的创建。以下是Java...

    标识符关键字数据类型上PPT学习教案.pptx

    总结,本PPT主要讲解了Java中的标识符规则、关键字和保留字的含义,数据类型的分类以及JavaDoc的使用,这些都是编写Java程序的基础知识。理解并掌握这些概念对于编写有效的、可读性强的Java代码至关重要。

    Java基础-标识符、关键字、数据类型练习题.doc

    本文将对Java基础知识点进行总结,包括标识符、关键字、数据类型等。 1. 标识符的命名规则 在Java语言中,标识符是指变量、方法、类等名称。标识符的命名规则如下: * 由英文字母、数字、_和$组成,长度不限。 * ...

    Java关键字、标识符、注释、转义字符.docx

    Java 关键字、标识符、注释、转义字符详解 Java 语言中有四个重要的概念:关键字、标识符、注释和...理解 Java 关键字、标识符、注释和转义字符是编写 Java 代码的基础,这些概念对于 Java 语言的学习和应用非常重要。

    大数据必学Java基础(十):标识符和关键字

    标识符和关键字是 Java 语言的基础概念,对于 Java 开发者的学习和理解至关重要。本文将解释标识符和关键字的定义、规则和特点,并提供相关的 Java 基础知识点。 一、标识符 标识符是 Java 语言中用于命名变量、类...

    java关键字、标识符、注释

    ### Java关键字、标识符、注释详解 #### 关键字(Keywords) 在Java语言中,关键字是具有特殊意义的保留字,它们不能用作变量名、方法名或类名等标识符。Java的关键字用于定义程序结构的重要组成部分,如控制语句、...

    java关键字和标识符的使用

    Java 关键字和标识符的使用 Java 编程语言中,关键字和标识符是两个非常重要的概念,它们在编程中扮演着不同的角色。关键字是 Java 语言中预定义的单词,它们具有特殊的含义和用途,而标识符则是开发者自行定义的...

    Java的关键字与标识符小结

    "Java关键字与标识符小结" Java语言中,关键字和标识符是两个重要的概念。关键字是被Java语言赋予了特殊含义的单词,总共有50个。它们被用来定义数据类型、流程控制、访问权限修饰符、类、函数、变量修饰符、类之间...

    Java的关键字与保留字

    在深入探讨Java的关键字与保留字之前,我们首先需明确两个概念:关键字和保留字。在编程语言中,关键字是预定义的具有特殊含义的标识符,它们在编译时被解析器识别并执行特定的功能;而保留字则是语言设计者为未来...

    Java基础之关键字_Java基础之关键字_源码

    本文将深入探讨Java中的关键字,这些关键字是Java语法结构的基础,它们被Java编译器特殊处理,有着特定的含义和功能。 Java的关键字是被语言本身预定义的标识符,它们不能作为变量名、类名或者方法名。Java的关键字...

    JAVA程序设计:第3章 标识符、关键字、类型.ppt

    在Java程序设计中,第三章主要讲解了标识符、关键字以及数据类型,这些都是编写Java程序的基础要素。 首先,我们来看一下Java中的...通过熟练运用标识符、关键字和数据类型,程序员可以有效地组织和控制程序的行为。

Global site tag (gtag.js) - Google Analytics