java 注释关键字_java 注释、关键字与标识符

注释:

单行注释        //注释内容

多行注释       /*注释内容*/

文档注释            /**注释内容*/

【注释是用来方便编写者和其他人阅读源代码,加强对代码的理解

其中文档注释与多行注释作用基本相同,唯一的区别是文档注释可以使用javadoc.exe命令生成API文档】

关键字

关键字是被Java语言赋予特殊含义,具有专门用途的单词,Java中关键字均为小写,

1 abstract    assert     boolean     break     byte

2   case      catch   char    class   const

3   continue  default  do     double  else

4   enum   extends  final    finally   float

5   for     goto   if    implements  import

6   instanceof  int    interface  long   native

7   new     package private  protected   public

8   return    strictfp   short   staticuper9   switch  synchronized this   throw  throws

10   transient   try    void    volatile

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算术规范 [1]

super            表明当前对象的父类型的引用或者父类型的构造方法

switch           分支语句结构的引导词

synchronized        表明一段代码需要同步执行

this             指向当前实例对象的引用

throw            抛出一个异常

throws          声明在当前定义的成员方法中所有需要抛出的异常

transient          声明不用序列化的成员域

try            尝试一个可能抛出异常的程序块

void            声明当前成员方法没有返回值

volatile          表明两个或者多个变量必须同步地发生变化

while           用在循环结构中

标识符

标识符就是名称的意思,所有的名称都统称为标识符。Java中经常要定义类、方法、变量,在定义他们时总要给它们起名字,这些名字就是标识符。

1.组成元素

英文字符: a-z,A-Z【所有的字母】

数字: 0-9【所有的数字】

符号: _与$

2.标识符规则

不能用数字开头

不可以使用关键字

严格区分大小写,不限制长度起名时,尽量达到见名知意

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的基于正则表达式的词法分析程序,可以分析关键字标识符、数字、界符和运算符: ```java import java.util.Arrays; import java.util.HashSet; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; public class LexicalAnalyzer { public static void main(String[] args) { // 输入的代码 String code = "int a = 123;\n" + "if (a > 0) {\n" + " System.out.println(\"Hello, world!\");\n" + "}"; // 关键字集合 Set<String> keywords = new HashSet<>(Arrays.asList( "abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", "float", "for", "if", "goto", "implements", "import", "instanceof", "int", "interface", "long", "native", "new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while" )); // 界符集合 Set<Character> delimiters = new HashSet<>(Arrays.asList( '(', ')', '{', '}', ';' )); // 运算符集合 Set<String> operators = new HashSet<>(Arrays.asList( "+", "-", "*", "/", "%", "++", "--", "==", "!=", ">", "<", ">=", "<=", "&&", "||", "!", "&", "|", "^", "~", "<<", ">>", ">>>", "+=", "-=", "*=", "/=", "%=", "&=", "|=", "^=", "<<=", ">>=", ">>>=" )); // 匹配标识符的正则表达式 String idPatternStr = "[a-zA-Z_$][a-zA-Z0-9_$]*"; // 匹配数字的正则表达式 String numPatternStr = "\\d+(\\.\\d+)?([eE][+-]?\\d+)?"; // 分行 String[] lines = code.split("\\r?\\n"); // 逐行分析 for (int i = 0; i < lines.length; i++) { String line = lines[i]; int pos = 0; // 逐个字符分析 while (pos < line.length()) { char ch = line.charAt(pos); // 跳过空白字符 if (Character.isWhitespace(ch)) { pos++; continue; } // 匹配标识符 Pattern idPattern = Pattern.compile(idPatternStr); Matcher idMatcher = idPattern.matcher(line.substring(pos)); if (idMatcher.lookingAt()) { String id = idMatcher.group(); if (keywords.contains(id)) { System.out.printf("Line %d: Keyword %s\n", i + 1, id); } else { System.out.printf("Line %d: Identifier %s\n", i + 1, id); } pos += id.length(); continue; } // 匹配数字 Pattern numPattern = Pattern.compile(numPatternStr); Matcher numMatcher = numPattern.matcher(line.substring(pos)); if (numMatcher.lookingAt()) { String num = numMatcher.group(); System.out.printf("Line %d: Number %s\n", i + 1, num); pos += num.length(); continue; } // 匹配界符和运算符 if (delimiters.contains(ch)) { System.out.printf("Line %d: Delimiter %s\n", i + 1, ch); pos++; } else { for (int len = Math.min(operators.size(), line.length() - pos); len > 0; len--) { String op = line.substring(pos, pos + len); if (operators.contains(op)) { System.out.printf("Line %d: Operator %s\n", i + 1, op); pos += len; break; } } } } } } } ``` 在这个程序,我们先把代码按行分割,然后逐行进行词法分析。对于每一行,我们从左到右依次扫描字符,使用正则表达式匹配标识符和数字,使用集合匹配关键字、界符和运算符。 这个程序只是一个基本的示例,实际的词法分析程序要更复杂,需要考虑更多的语法规则,比如注释、字符串等等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值