Java基础入门篇——Java注释、关键字和标识符(二)

目录

一、注释

1.1注释介绍

1.2单行注释

1.3多行注释

1.4文档注释

1.5javadoc注释标签语法

二、关键字

三、字面量

3.1什么是标识符? 

3.2标识符命名规则

四、总结


一、注释

在Java中,注释是用来向代码添加解释、说明和文档信息的文本。Java的注释有三种类型:单行注释,多行注释和文档注释。 

1.1注释介绍

注释是在程序指定位置添加的说明性信息简单理解,就是对代码的一种解释

1.2单行注释

单行注释以双斜线//开头,从//到行末的内容都会被注释掉。单行注释用于对单行代码或语句进行简单的注释,不会跨越多行。 

// 这是一个单行注释
int number = 10;  // 这是一个对变量进行注释的单行注释

1.3多行注释

多行注释以/*开始,以*/结束,在/**/之间的内容都会被注释掉。多行注释可以用于对多行代码或语句进行注释。 

/*
 * 这是一个多行注释
 * 它可以跨越多行
 */

int a = 20;
/* 这是对变量a进行注释的多行注释 */

1.4文档注释

文档注释是一种特殊的注释类型,用于编写程序的文档和说明。文档注释以/**开始,以*/结束,在/***/之间的内容会被用于自动生成API文档。 文档注释可以包含对类、方法、字段和参数的描述,以及其他有关程序的详细信息。文档注释通常用于生成项目文档或API文档。 

/**
 * 这是一个文档注释。
 * 它可以包含对类、方法、字段和参数的描述,以及其他详细信息。
 * @param name 一个字符串参数用于描述姓名。
 * @return 返回拼接后的字符串。
 */
public String sayHello(String name) {
    return "Hello, " + name + "!";
}

注释对于编写可读性强、易于理解和维护的代码非常重要。通过注释,可以清晰地解释代码的用途、实现方式以及可能的注意事项。

需要注意的是,注释不会被编译器编译为执行的代码,它们只是用于给开发人员提供更多的信息和解释。

1.5javadoc注释标签语法

二、关键字

关键字:也称保留字,是Java语言中已定义的标识符,具有特定含义。如public、class、void等。所有关键字均为小写。

以下是Java中的关键字列表及其作用:

  1. abstract:用于定义抽象类或抽象方法。
  2. assert:用于在代码中插入断言,用于测试预期的条件是否为真。
  3. boolean:表示布尔类型,只能取truefalse
  4. break:用于跳出循环或switch语句。
  5. byte:表示8位的有符号整数。
  6. case:在switch语句中用于定义不同的分支选项。
  7. catch:用于捕获和处理异常。
  8. char:表示16位Unicode字符。
  9. class:用于定义类。
  10. continue:用于跳过当前循环迭代,继续下一个迭代。
  11. default:在switch语句中用于定义默认分支选项。
  12. do:通常与while结合使用,用于执行循环体至少一次。
  13. double:表示64位双精度浮点数。
  14. else:与if结合使用,用于执行if条件不满足时的代码块或语句,例如:
  15. 
    if(表达式)
    {语句1;
    }else{
    语句2;
    }
  16. enum:用于定义枚举类型。
  17. extends:用于继承一个类或实现一个接口。
  18. final:表示不可变的或无法继承的。
  19. finally:用于定义在异常处理后必须执行的代码块。
  20. float:表示32位单精度浮点数。
  21. for:用于循环执行指定的代码块或语句。
  22. if:用于条件判断,执行指定的代码块或语句。
  23. implements:用于实现一个接口。
  24. import:用于导入其他类或包。
  25. instanceof:用于检查对象是否是某个类的实例。
  26. int:表示32位有符号整数。
  27. interface:用于定义接口。例如:
  28. 
    public interface A{
    void b();
    }
  29. long:表示64位有符号整数。
  30. new:用于创建一个对象。例如:
  31. 
    Person p = new Person();
  32. package:用于定义类的命名空间。
  33. private:表示私有的,只能在类的内部访问。
  34. protected:表示受保护的,可以在同一包内及子类中访问。
  35. public:表示公共的,可以被任何地方访问。
  36. return:用于从方法返回值。
  37. short:表示16位有符号整数。
  38. static:表示静态的,可以在不创建对象的情况下访问。
  39. strictfp:表示精确浮点计算,符合IEEE-754规范。
  40. super:用于引用父类的成员或调用父类的构造方法。
  41. switch:用于多路分支判断。
  42. 
    switch( 表达式 ){
    case 条件1:
    s1:单个或多个语句
    break;
    case 条件2:
    s2:单个或多个语句
    break;
    case 条件3:
    s3:单个或多个语句
    break;
    default:
            S4:单个或多个语句
    }
  43. synchronized:用于实现线程同步。
  44. this:用于引用当前对象。
  45. throw:用于抛出异常。
  46. throws:用于声明方法可能抛出的异常。
  47. transient:表示不被序列化的。
  48. try:用于定义一个代码块,并捕获可能抛出的异常。
  49. void:表示无返回值。
  50. volatile:用于声明变量可能被多个线程修改。

这些关键字在Java编程中具有特定的用途和作用,关键字的合理使用有助于编写可读性强、正确性高的代码。

三、字面量

3.1什么是标识符? 

在编程中,标识符是用来标识变量、方法、类、包等程序元素的名称。简单来说,标识符就是我们在编程中自己定义的名字。

3.2标识符命名规则

  1. 标识符可以包含字母、数字、下划线(_)和美元符号($)。
  2. 标识符必须以字母、下划线或美元符号开头,不能以数字开头。
  3. 标识符对大小写敏感,表示不同的名称。
  4. 标识符不能是Java中的关键字或保留字。
  5. 标识符应具有描述性和有意义的名称,以提高代码的可读性。

一些示例合法的标识符:

myVariable
myMethod
MyClass
MY_CONSTANT
_totalScore

一些非法的标识符:

3numbers (以数字开头)
my-variable (包含破折号)
class (是Java的关键字)

在编程过程中,正确使用有意义的标识符可以使代码更易于理解、维护和扩展。

四、总结

1.本文介绍了Java注释的三种方法单行注释、多行注释、文档注释,了解注释的作用,帮助理解代码的,让别人看懂你写的代码;

2.了解Java的关键字,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数,掌握标识符命名的规则,标识符是用户自己定义的名字;

  • 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
发出的红包

打赏作者

一季春秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值