01、Java 标识符、关键字、保留字、直接量、分隔符

1、标识符


  • 作用:凡是可以起名的地方都叫做标识符 ,(比如:类名,方法名,变量名等)。

  • 标识符(Identifier)的命名规则
    • (1) 由字母(中文字符、日文字符、韩文)、数字、下划线、$组成,不能以数字开头
      • 注意:此处的字母还可以是中文,日文等;
    • (2) 大小写敏感,长度无限制
    • (3) 不得使用 java 中的关键字和保留字
    • (4) 别用 Java API 里面的类名作为自己的类名。
    • (5) 标识符不能包含空格

  • 驼峰标识:一个单词首字母小写,多个单词从第二个单词开始每个单词的首字母大写。
  • 作用:能够快速区分 标识符 中的每个单词,增强可读性。

2、项目中,包名、类/接口、方法、变量、常量、项目名 等标识符的规范


  • 包名:全部小写,多级包用.隔开。
    • 举例:org.rainlotus.base.util.array
  • 类、接口:一个单词首字母大写,多个单词每个单词的首字母大写。
    • 举例:Student、Car、HelloWorld
  • 方法和变量:一个单词首字母小写,多个单词从第二个单词开始每个单词的首字母大写。
    • 举例:age、maxAge、show()、getAge()
  • 常量:如果是一个单词,所有字母大写,如果是多个单词,所有的单词大写,用下划线区分每个单词。
    • 举例:DATE、MAX_AGE
  • 项目名:全部用小写字母,多个单词之间用横杆-分割。
    • 举例:demo、spring-boot

3、Java 中的关键字


  • 关键字:对于 java 程序有 特殊的意义的单词,有 50 个。(关键字、保留字全是小写的)
  • 1、包与导入
    • package: 声明包。
    • import: 导入包或类。
  • 2、访问控制
    • public: 公开访问权限。
    • protected: 受保护的访问权限。
    • private: 私有访问权限。
    • default (隐式): 包级私有(无需显式声明)。
  • 3、类、接口、枚举
    • class: 声明类。
    • extends: 继承父类或实现接口的父接口。
    • interface: 声明接口。
    • implements: 实现接口。
    • enum: 声明枚举类型。
  • 4、对象创建、类型判断
    • new: 创建新对象。
    • instanceof: 检查对象是否为某类的实例。
  • 5、变量引用
    • this: 当前对象的引用。
    • super: 父类对象的引用。
  • 6、修饰符
    • static: 静态成员(类级别)。
    • final: 不可继承/不可修改(类、方法、变量)。
    • abstract: 抽象类或方法。
    • var: (Java 10+ 引入的类型推断)是受限关键字,仅在局部变量声明时使用。
    • native: 本地方法(由 JVM 外部实现。由 C/C++ 实现的方法)。
    • strictfp: 严格浮点计算(单精度或双精度浮点数,表达式遵循 IEEE 754 算术规范)。
    • transient: 成员变量不参与序列化。
    • volatile: 变量值直接读写内存,保证可见性。
    • synchronized: 同步方法或代码块。
  • 7、流程控制
    • if: 条件判断。
    • else: 条件分支。
    • switch: 多分支选择。
    • case: 分支标记。
    • default: 默认分支(switch中)。
    • for: 循环结构。
    • while: 循环结构。
    • do: 循环结构(后测试条件)。
    • break: 跳出循环或switch。
    • continue: 跳过当前循环剩余代码。
    • return: 从方法返回。
  • 8、异常处理
    • try: 尝试执行可能抛出异常的代码块。
    • catch: 捕获异常。
    • finally: 无论是否异常都执行的代码块。
    • throw: 抛出异常实例。
    • throws: 声明方法可能抛出的异常类型。
  • 9、基本数据类型
    • byte: 8位整数。
    • short: 16位整数。
    • int: 32位整数。
    • long: 64位整数。
    • float: 32位浮点数。
    • double: 64位浮点数。
    • char: 16 位 Unicode 字符。
    • boolean: 布尔值(true或false)。
    • void: 无返回值。

4、Java 中的保留字?有没有 goto 关键字?

  • 保留字:
    • goto: 保留未使用(类似 C 语言的跳转)。
    • const: 保留未使用(类似 C 的常量声明)。

5、Java 中的直接量

  • 直接量:
    • true: 真。
    • false: 假。
    • null: 空对象引用。

6、Java 中 delete、next、main、exit、null 是关键字吗?


  • 否,在 Java 中,delete、next、main、exit 和 null 不是关键字。
  • null 是直接量,不是关键字。

7、Java 的分隔符有哪些?


  • 常见的分隔符有 分号;花括号{}方括号[]圆括号()空格圆点. 等;
### 解析 Import Error 的常见原因 当遇到 `ImportError: cannot import name 'Generic'` 错误时,通常意味着尝试从模块中导入的对象不存在或无法访问。此问题可能由多种因素引起: - 版本不兼容:不同库之间的版本冲突可能导致此类错误。 - 安装缺失:目标库未正确安装或路径配置有误。 - 导入语句不当:可能存在循环依赖或其他语法层面的问题。 ### 针对 Generic 类型的具体解决方案 对于特定于 `Generic` 的情况,考虑到 Python 中 `Generic` 是 typing 模块的一部分,在处理该类别的 ImportError 时可采取如下措施[^1]: #### 方法一:确认typing模块可用性 确保环境中已安装标准库中的 typing 模块,并且其版本支持所使用的特性。可以通过以下命令验证: ```bash python -c "from typing import Generic; print(Generic)" ``` 如果上述命令执行失败,则可能是由于 Python 或者相关扩展包的版本过低造成的。此时应考虑升级至更高版本的解释器以及对应的开发工具链。 #### 方法二:调整导入方式 有时直接通过顶层命名空间来获取所需组件会更稳定可靠。修改代码以采用这种做法可能会解决问题: ```python from collections.abc import Iterable # 如果是迭代器相关接口 from typing import TypeVar, Protocol # 对于协议和泛型定义 T = TypeVar('T') class MyContainer(Protocol[T]): ... ``` 注意这里并没有显式提到 `Generic` ,而是利用了更为基础的数据结构抽象基类或是其他替代方案实现相同功能[^2]。 #### 方法三:排查环境变量设置 检查系统的 PYTHONPATH 和虚拟环境配置是否正常工作。任何异常都可能导致某些第三方软件包找不到必要的资源文件而引发类似的错误提示。建议清理并重建项目专属的工作区以便排除干扰项的影响。 #### 示例修正后的代码片段 假设原始代码试图这样引入 `Generic` : ```python from some_module import Generic # 可能导致 ImportError ``` 改为遵循官方文档推荐的方式后变为: ```python from typing import Generic # 正确的做法 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值