0%

Java 类的基础(二):代码的组织机制

1. Java 中组织类和接口的方式以及原因

  • 包,为了避免命名冲突
  • Java API 中所有的类和接口都位于包 Java 或 javax 下,Java 是标准包,javax 是扩展包

2. 怎样声明一个包名

  • 通过关键字 package 声明一个包名
  • 包声明语句应该位于源代码的最前面,前面不能有注释以外的其他语句

3. java.lang 包下的类的使用特点是

  • java.lang 包下的类可以直接使用,不需要引入也不需要使用完全限定名
  • 比如 String 类、System 类,其他包内的类则不行

4. import 语句的使用位置

  • import 语句需要放在 package 定义之后,类定义之前

5. 能递归导入吗

  • 不能

6. 静态导入的使用特点

  • 静态导入不应过度使用,否则难以区分访问的是哪个类的代码

7. Java 中可见性范围是

  • 从大到小是: public > protected > package(默认)> private
  • 很多编程规范里不建议使用默认,因为容易导致是程序员忘记还是故意这种场景下的混淆

8. 怎样理解程序的编译与链接

  • 从 Java 源代码到运行的程序,有编译和链接两个步骤
  • 编译是将源代码文件变成扩展名是 .class 的一种字节码,这个过程一般是由 javac 命令完成的
  • 链接是在运行时动态执行的,.class 文件不能直接运行,运行的是 Java 虚拟机。虚拟机是一种特殊的程序,执行的就是 java 命令,这个命令解析 .class 文件,转换为计算机能识别的二进制代码,然后运行
  • 所谓链接(验证、准备、解析)就是根据引用到的类加载相应的字节码并执行。import 是编译时概念,用于确定完全限定名,在运行时,只根据完全限定名寻找并加载类,编译和运行时都依赖类路径(classpath),类路径中的 jar 文件会被解压缩用于寻找和加载类

9. Java 9 中的模块的概念

  • 在 Java 9 中,清晰地引入了模块的概念,JDK 和 JRE 都按模块化进行了重构
  • 传统的代码组织机制依然是支持的,但新的应用可以使用模块。一个应用可有多个模块组成,一个模块可由多个包组成
  • 模块之间可以有一定的依赖关系,一个模块可以导出包给其他模块使用,可以提供服务给其他模块使用,也可以使用其他模块提供的包和调用其他模块提供的服务
  • 对于复杂的应用,模块化有很多好处,比如更强的封装、更为可靠的配置、更为松散的耦合、更动态灵活
-------------------- 本文结束感谢您的阅读 --------------------