当前位置:首页>Java>Java教程>Java标识符

Java标识符

作者:微学网发布时间:2019-08-31 21:27:46

什么是标识符

是程序员在定义Java程序时,自定义的一些名字,例如HelloWorldDemo,程序里关键字class后跟的HelloWorldDemo,就是我们定义的类名。

类名就属于标识符的一种。

标识符除了应用在类名上,还可以用在变量函数名包名上。

标识符示例

public class HelloWorldDemo{
    public static void main(String[] args) {
        System.out.println("Hello World 小微");
    }
}

合法的标识符的命名规则

  • 标识符由26个英文字符大小写(a~zA~Z)、数字(0~9)、下划线(_)和美元符号($)组成。

  • 不能以数字开头,不能是关键字,不能是true false null(尽管三个都不是关键字)

  • 严格区分大小写

  • 标识符的可以为任意长度

不能是关键字 50个

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

50个关键字的介绍如下

关键字及保留(关键)字表

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    用在循环结构中

合法的标识符

Computerradiusarea $hello _computer my_computer

注意:由于Java严格区分大小写,COMPUTERcomputer是完全不同的标识符

非法标识符

  • class (关键字)

  • 100java (不能以数字开头)

  • Hello java (空格不是组成标识符的元素)

Java中的标识符命名规范

包名

多个单词组成时所有字母小写(例:package com.weixue)

类名和接口

多个单词组成时所有单词的首字母大写(例:HelloWorld)

变量名和函数名

多个单词组成时第一个单词首字母小写,其他单词首字母大写(例:lastAccessTime、getTime)。

常量名

多个单词组成时,字母全部大写,多个单词之间使用_分隔(例:INTEGER_CACHE)
红色提示-注意:只是为了增加规范性、可读性而做的一种约定,标识符在定义的时候最好见名知意,提高代码阅读性。

Java程序判断是否是合法的标识符

import java.util.*;
public class Main
{    
    public static void main(String args[])
    { 
        Scanner cin=new Scanner(System.in);  
        String str;
        boolean flag;
        while(cin.hasNext())
        {
            str = cin.nextLine();
            flag = valid(str);
            if(flag==true) System.out.println("true");
            else System.out.println("false");

        }

        cin.close();
    }
    public static boolean valid(String str)  
    {  
        if(Character.isJavaIdentifierStart(str.charAt(0)))  
            // 如果第一个字符是Java合法的标识符,进入if语句  
        {  
            for(int i=1; i<str.length(); i++)  
                // 从第二个标识符开始,逐个遍历  
            {  
                if(!Character.isJavaIdentifierPart(str.charAt(i)))  
                    // 如果第i个标识符不是Java的合法标识符,返回false  
                {  
                    return false;  
                }  
            }  
            // 如果标识符是合法的Java标识符,返回true  
            return true;  
        }  
            // 如果第一个字符不是Java合法的标识符,返回false  
        return false;  
    }  
}