一、简介
[JAVA官网]
: https://www.oracle.com/technetwork/java/javase/downloads/index.html
[技术文档]
:https://docs.oracle.com/javase/8/docs/api/
: https://docs.oracle.com/javase/8/docs/api/overview-summary.html
[JAVA 研究分析]
:1、以JAVA最新版本和8版本的JDK源码为分析基础
:2、结合相关数据及资源进行JAVA相关编程和技巧的分析
:3、
[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
二、概述 - 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目录结构
[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