一、简介

  1. [JAVA官网]
  2. : https://www.oracle.com/technetwork/java/javase/downloads/index.html
  3. [技术文档]
  4. https://docs.oracle.com/javase/8/docs/api/
  5. : https://docs.oracle.com/javase/8/docs/api/overview-summary.html
  6. [JAVA 研究分析]
  7. 1、以JAVA最新版本和8版本的JDK源码为分析基础
  8. 2、结合相关数据及资源进行JAVA相关编程和技巧的分析
  9. 3

image.png

[JAVA相关安装包和源码]

    :jdk-11.0.2_linux-x64_bin.tar.gz

  :jdk-11.0.2_windows-x64_bin.zip

  :jdk_11.0.2_src.zip

    :jdk-8u201-linux-x64.tar.gz

  :jdk_8u201_src.zip

jdk-11.0.2_linux-x64_bin.tar.gz

jdk-11.0.2_windows-x64_bin.zip

jdk_11.0.2_src.zip

jdk-8u201-linux-x64.tar.gz

jdk_8u201_src.zip

二、概述 - JAVA API 类库及其组织结构

java.* 开头的是Java的核心包,所有程序都会使用这些包中的类


javax. 开头的是[x extension]扩展包,是对 java. 的优化和扩展

[JAVA API 基本类库简介]

    : java.lang    提供了Java编程的基础类,例如 Object、Math、String、StringBuffer、System、Thread等

  : java.util 提供了包含集合框架、遗留的集合类、事件模型、日期和时间实施、国际化和各种实用工具类

  : java.io   通过文件系统、数据流和序列化提供系统的输入与输出

  : java.net  提供实现网络应用与开发的类

  : java.sql  提供了使用Java语言访问并处理存储在数据源(通常是一个关系型数据库)中的数据API

  : java.text 提供了与自然语言无关的方式来处理文本、日期、数字和消息的类和接口

三、JDK目录结构

image.png

image.png

[JDK8]

    : 两个重要的JAR包 -> rt.jat 和 tools.jar

  : rt.jar rutime , 提供了运行环境所用到的一些类库

  : tools.jar java中最基本的包,里面包含了从java中最重要的lang包到各种高级功能类库

[JDK9]

    : 没有JRE, rt.jat 和 tools.jar , 只有一个一个的模块

  : Java8其实是一个单体模式,Java9引入模块后, 模块之间依赖关系更加清晰,只需引用需要的模块

  : Java Module与maven/gradle的关系

  -> Maven 主要有两个概念, 依赖管理和构建管理, 依赖管理即可以决定库中的版本并从仓库中下载下来, 构建管理即管理开发过程中的任务,包括初始化、编译、测试、打包等

  -> Module是系统内置用于表述组件之间的关系,对于版本的管理还是处于最原始的状体,管理一种强制的依赖关系

  -> Module强制确定了module和artifacts之间的依赖关系, 而Maven对于依赖并非是强制的

[模块化的原理]

    : 将系统内部类进行模块化, 将ClassLoader分级

      -> Bootstrap Loader具有最高优先级和权限,主要是核心的系统类

    -> Platform Loader用于扩展的一些系统类,例如SQL,XML等

    -> Application Loader主要用于应用程序的Loader

    -> 在这三个级别的Loader下面有一个统一Module管理,用于控制和管理模块间的依赖关系,可读性,可访问性等。

  : Mudule 控制配置文件 -> module-info.java