zoukankan      html  css  js  c++  java
  • Java基础 关键字 和标识符

    一.Java中对goto关键字的处理
    在Java中,我们不能使用goto关键字,而是使用循环标签,但是为了避免程序员自行使用goto,所以保留了goto作为一个关键字。类似的关键字还有const。
    二.true、false、null是否是关键字
    在Java中,true、false、null都不是关键字,而是字面常量(也称为直接量),其中,true和false是布尔类型的字面常量,null是引用类型的字面常量。这三个字面常量也不能作为标识符使用。
    三.Java中的关键字
    关键字 含义
    abstract 表明类或者成员方法具有抽象属性
    assert 用来进行程序调试
    boolean 基本数据类型之一,布尔类型
    break 提前跳出一个块
    byte 基本数据类型之一,字节类型
    case 用在switch语句之中,表是其中的一个分支
    catch 用在异常处理中,用来捕捉异常
    char 基本数据类型之一,字符类型
    class 类
    const 保留关键字,没有具体含义
    continue 回到一个块的开始处
    default 默认,例如,用在switch语句中,表明一个默认的分支
    do 用在do-while循环结构中
    double 基本数据类型之一,双精度浮点数类型
    else 用在条件语句中,表明当条件不成立时的分支
    enum 枚举
    extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
    final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变
    finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
    float 基本数据类型之一,单精度浮点数类型
    for 一种循环结构的引导词
    goto 保留关键字,没有具体含义
    if 条件语句的引导词
    implements 表明一个类实现了给定的接口
    import 表明要访问指定的类或包
    instanceof 用来测试一个对象是否是指定类型的实例对象
    int 基本数据类型之一,整数类型
    interface 接口
    long 基本数据类型之一,长整数类型
    native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
    new 用来创建新实例对象
    package 包
    private 一种访问控制方式:私用模式
    protected 一种访问控制方式:保护模式
    public 一种访问控制方式:共用模式
    return 从成员方法中返回数据
    short 基本数据类型之一,短整数类型
    static 表明具有静态属性
    strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
    super 表明当前对象的父类型的引用或者父类型的构造方法
    switch 分支语句结构的引导词
    synchronized 表明一段代码需要同步执行
    this 指向当前实例对象的引用
    throw 抛出一个异常
    throws 声明在当前定义的成员方法中所有需要抛出的异常
    transient 声明不用序列化的成员域
    try 尝试一个可能抛出异常的程序块
    void 声明当前成员方法没有返回值
    volatile 表明两个或者多个变量必须同步地发生变化
    while 用在循环结构中
    四.Java标识符的定义规则

    1.大多数人理解的Java标志符的定义规则:
    (1).标识符由字母、数字、货币符号(¥、$)、连接符号(_)组成。
    (2).标识符的首字母可以是字母、货币符号与连接符号,但是不能为数字。
    (3).标识符不能与Java中的关键字相同。
    (4).标识符不能与Java中预定义的字面常量名称相同(如true、false、null)。
    上面的规则在大部分时候是正确的,但是要注意这里的字母不只是传统中的26个英文字母,而是Unicode字符集,Unicode字符集的取值范围是U+0000~U+10FFFF,但是不是每一个Unicode值都与一个字符相对应,这就意味着不是整个Unicode字符集都可以作为Java中的标识符。还有就是不能作为Java标识符首字母的字符集,也不仅仅是简单的0~9这10个数字。那么我们怎么判断一个Unicode是否可以作为Java标识符呢?在Character中有这样两个方法可以进行判断:
    public static boolean isJavaIdentifierStart(char ch);判断对应的字符是否可以作为Java的标识符的首字符
    public static boolean isJavaIdentifierPart(char ch);判断对应的字符是否可以作为Java的标识符
    由于Unicode字符集的扩展,为了能够处理增补字符(U+10000~U+10FFFF),在jdk1.5中增加了两个方法,也用于此作用:
    public static boolean isJavaIdentifierStart(int codePoint);判断代码点对应的字符是否可以作为Java的标识符的首字符
    public static boolean isJavaIdentifierPart(int codePoint);判断代码点对应的字符是否可以作为Java的标识符
    2.现在,我们重新定义一下标识符的定义规则:
    (1).标识符的首字母对应的代码点必须使得Character类的isJavaIdentifierStar()方法返回值为true,后续的字符对应的代码点必须使得Character类的isJavaIdentifierPart()的返回值为true。
    (2).标识符不能与Java中的关键字相同。
    (3).标识符不能和Java中预定义的字面常量名称相同。
    (4).标识符的长度必须在系统所支持的范围内。
    五.注意符号“$”的使用
    在定义Java标识符的时候,我们可以使用$,并且可以使用它作为标识符的首字母,但是我们需要注意$这个符号可以在内部类中使用,所以当我们使用$作为关键字字符时,需要考虑到这一点。
    [java] view plain copy
    public class User$Vip {

    public static void main(String[] args) {

    }
    }

    class User{
    class Vip{
    void print()
    {
    System.out.println("vip");
    }
    }
    }

    上面这个例子就是因为类标志符中使用$,与内部类中的$冲突,所以编译的时候会报错,提示User.Vip类重复了。其原因是在编译为class文件的时候,会存在两个User$Vip.class,所以会报错。
    六.标识符的最大长度
    在Java语言规范中,对于Java标志符的长度是没有限制的,但是在Java虚拟机规范中,标识符是有长度限制的。在class文件中,代表标识符的常量字符串存储在CONSTANT_Utf8_info表中,这个表用了两个字节的来表示字符串的长度。所以最大表示65535.


    关键字和标识符相关的笔试题


    如下那个是Java的标识符
    A.fiedldname
    B.super
    C.3number
    D.#number
    答案是A。

    标识符
    定义:
    用户在编程时给类、变量/常量、方法(函数)、语句块等起的名字。
    组成规则:
    a.由数字0-9,26个英文字母的大小写,$和_组成;
    b.不能以数字开头;
    c.不能是关键字(总算是和关键字有一点联系了)
    d.名字之中不要用空格
    e.Java中严格区分大小写
    常用的命名规则:
    A:包
    用于把同名的文件放到不同的目录下。
    全部小写。如果是多级包,用.分开。
    举例:itcast,cn.itcast, com.baidu
    给公司做项目:域名反写作为包名。
    B:类和接口(见名知意,驼峰命名)
    a:一个单词时首字母大写。
    举例:Student,Teacher
    b:由多个单词组成,每个单词的首字母大写。
    举例:HelloWorld, HaoGuiBao
    C:方法和变量
    a:一个单词时首字母小写。
    举例:main(),age
    b:如果是多个单词组成,从第二个单词开始,每个单词的首字母大写。
    举例:showName(),studentAge
    D:常量
    a:如果是一个单词,全部大写。
    举例:PI
    b:如果是多个单词,全部大写,并用_隔开
    举例: STUDENT_MAX_AGE

    小结:
    关键字是语言本身给定义的,而标识符是我们自己来命名的,这些单词都是为了让我们能够更好的理解程序,统一大家的认知,使得程序员之间、程序员与机器之间都能够良好的沟通。条条框框虽多,但是都值得遵守。
    一.Java中对goto关键字的处理
    在Java中,我们不能使用goto关键字,而是使用循环标签,但是为了避免程序员自行使用goto,所以保留了goto作为一个关键字。类似的关键字还有const。
    二.true、false、null是否是关键字
    在Java中,true、false、null都不是关键字,而是字面常量(也称为直接量),其中,true和false是布尔类型的字面常量,null是引用类型的字面常量。这三个字面常量也不能作为标识符使用。
    三.Java中的关键字
    关键字 含义
    abstract 表明类或者成员方法具有抽象属性
    assert 用来进行程序调试
    boolean 基本数据类型之一,布尔类型
    break 提前跳出一个块
    byte 基本数据类型之一,字节类型
    case 用在switch语句之中,表是其中的一个分支
    catch 用在异常处理中,用来捕捉异常
    char 基本数据类型之一,字符类型
    class 类
    const 保留关键字,没有具体含义
    continue 回到一个块的开始处
    default 默认,例如,用在switch语句中,表明一个默认的分支
    do 用在do-while循环结构中
    double 基本数据类型之一,双精度浮点数类型
    else 用在条件语句中,表明当条件不成立时的分支
    enum 枚举
    extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
    final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变
    finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
    float 基本数据类型之一,单精度浮点数类型
    for 一种循环结构的引导词
    goto 保留关键字,没有具体含义
    if 条件语句的引导词
    implements 表明一个类实现了给定的接口
    import 表明要访问指定的类或包
    instanceof 用来测试一个对象是否是指定类型的实例对象
    int 基本数据类型之一,整数类型
    interface 接口
    long 基本数据类型之一,长整数类型
    native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
    new 用来创建新实例对象
    package 包
    private 一种访问控制方式:私用模式
    protected 一种访问控制方式:保护模式
    public 一种访问控制方式:共用模式
    return 从成员方法中返回数据
    short 基本数据类型之一,短整数类型
    static 表明具有静态属性
    strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
    super 表明当前对象的父类型的引用或者父类型的构造方法
    switch 分支语句结构的引导词
    synchronized 表明一段代码需要同步执行
    this 指向当前实例对象的引用
    throw 抛出一个异常
    throws 声明在当前定义的成员方法中所有需要抛出的异常
    transient 声明不用序列化的成员域
    try 尝试一个可能抛出异常的程序块
    void 声明当前成员方法没有返回值
    volatile 表明两个或者多个变量必须同步地发生变化
    while 用在循环结构中
    四.Java标识符的定义规则
    1.大多数人理解的Java标志符的定义规则:
    (1).标识符由字母、数字、货币符号(¥、$)、连接符号(_)组成。
    (2).标识符的首字母可以是字母、货币符号与连接符号,但是不能为数字。
    (3).标识符不能与Java中的关键字相同。
    (4).标识符不能与Java中预定义的字面常量名称相同(如true、false、null)。
    上面的规则在大部分时候是正确的,但是要注意这里的字母不只是传统中的26个英文字母,而是Unicode字符集,Unicode字符集的取值范围是U+0000~U+10FFFF,但是不是每一个Unicode值都与一个字符相对应,这就意味着不是整个Unicode字符集都可以作为Java中的标识符。还有就是不能作为Java标识符首字母的字符集,也不仅仅是简单的0~9这10个数字。那么我们怎么判断一个Unicode是否可以作为Java标识符呢?在Character中有这样两个方法可以进行判断:
    public static boolean isJavaIdentifierStart(char ch);判断对应的字符是否可以作为Java的标识符的首字符
    public static boolean isJavaIdentifierPart(char ch);判断对应的字符是否可以作为Java的标识符
    由于Unicode字符集的扩展,为了能够处理增补字符(U+10000~U+10FFFF),在jdk1.5中增加了两个方法,也用于此作用:
    public static boolean isJavaIdentifierStart(int codePoint);判断代码点对应的字符是否可以作为Java的标识符的首字符
    public static boolean isJavaIdentifierPart(int codePoint);判断代码点对应的字符是否可以作为Java的标识符
    2.现在,我们重新定义一下标识符的定义规则:
    (1).标识符的首字母对应的代码点必须使得Character类的isJavaIdentifierStar()方法返回值为true,后续的字符对应的代码点必须使得Character类的isJavaIdentifierPart()的返回值为true。
    (2).标识符不能与Java中的关键字相同。
    (3).标识符不能和Java中预定义的字面常量名称相同。
    (4).标识符的长度必须在系统所支持的范围内。
    五.注意符号“$”的使用
    在定义Java标识符的时候,我们可以使用$,并且可以使用它作为标识符的首字母,但是我们需要注意$这个符号可以在内部类中使用,所以当我们使用$作为关键字字符时,需要考虑到这一点。
    [java] view plain copy
    public class User$Vip {

    public static void main(String[] args) {

    }
    }

    class User{
    class Vip{
    void print()
    {
    System.out.println("vip");
    }
    }
    }

    上面这个例子就是因为类标志符中使用$,与内部类中的$冲突,所以编译的时候会报错,提示User.Vip类重复了。其原因是在编译为class文件的时候,会存在两个User$Vip.class,所以会报错。
    六.标识符的最大长度
    在Java语言规范中,对于Java标志符的长度是没有限制的,但是在Java虚拟机规范中,标识符是有长度限制的。在class文件中,代表标识符的常量字符串存储在CONSTANT_Utf8_info表中,这个表用了两个字节的来表示字符串的长度。所以最大表示65535.

  • 相关阅读:
    生成XML文件
    webService的发布与调用
    does not contain bitcode ShardSDK等三方库
    IOS在Document目录下创建文件夹、保存、读取、以及删除文件
    判断IOS安装后是否是第一次启动
    OC中使用单例模式
    两个时间(日期)段交集判断方法
    $(document).ready vs. $(window).load
    基于vant上传图片添加水印
    常用的正则校验
  • 原文地址:https://www.cnblogs.com/nmdzwps/p/6406678.html
Copyright © 2011-2022 走看看