String在Java语言里是关键字吗?

只要学过一点Java知识的读者,对下面这段代码一定不陌生。

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello world");
    }
}

这里笔者想就这段代码探讨几个概念性的问题:
String 是关键字(keyword)吗?
不知道此刻大家大家心中是否有了非常确定的答案~
由于工作关系,笔者曾经指导过数十批在校大学生软件开发项目实训,这些同学基本上都是已经学完JavaSE。
每批学生,我都会问这个问题。
大量学生都很肯定的认为String 是关键字,还有少部分学生有点茫然,那到底是不是关键字呢?

下图是Java官网给出额Java关键字列表,显然 String 并不在其中。

这里写图片描述

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.htmlJava关键字列表

既然String 不在关键字列表中,为什么有那么多同学认为它是关键字呢?
为什么说 String 是关键字呢?
给出的理由是:经常出现、重要、开发工具里高亮显示…

原来,是概念不清晰导致的错觉。


搞清楚关键字、标识符 这两个概念,就明白为啥String不是关键字了。

关键字(keywords)是这Java语言规范约定用于表达语法含义的单词,截止JDK8.0,这部分单词总共有50个。
其中绝大部分关键词是Java语法发布之初就约定好的,少部分关键词是随Java语言发展后加入的。
strictfp JDK1.2 加入
assert JDK1.4 加入
enum JDK5.0 加入
还有少数单词,目前还没有明确的语法含义,但是Java语言也约定它是关键字,随着Java的发展,将来可能会被赋予语法含义。这部分关键词又被称为保留关键字(reserved keywords),如关键字列表中的constgoto


标识符(identifier),是指类名(包括接口、枚举、抽象类)、方法名、变量、常量名、包名等可以自定义的字符组合。
虽然可以自定义,但是也要遵循如下规则:

  1. 由字母, 下划线, 数字, $符号组成;
  2. 只能以字母、下划线、$符号开头,不能以数字开头;
  3. 标识符长度没有限;
  4. 区分大小写
  5. 不能是关键字

String 是Java基础库中的一个常用类的类名,属于标识符(identifier),显然不是关键字


小结:对于概念,要有清晰的认识,不能凭感觉。对概念的清晰掌握,有利于我们进一步学习新知识,理解原理。

  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值