Java认识
# Java认识
# Java 发展史
- 1991年 诞生了Java前世语言 “OaK”
- 1995年 由Oak语言 更至为 “Java”
- 1996.1 SUN公司推出 JDK1.0 开发工具&运行环境(标志成为独立开发工具)
- JDK1.0:核心API、集成API、用户界面API、发布技术、Java虚拟机(JVM)、Applet、AWT
- 1997.2 SUN公司紧接推出 JDK1.1
- JDBC、JavaBeans、RMI、JAR文件格式、Java内部类&反射
- 1998.12 推出JDK1.2-企业版J2EE发布
- JDK1.2:Swing、Java IDL、EJB、Java Plug-in 等,添加了 strictfp 关键字和 Collections 集合类
- 1999.4 SUN公司 收购 HotSpot公司发布的虚拟机
- 1999.6 SUN公司把Java体系划分方向&不同的供应商API接口(最主要的里程碑)
- J2ME(微型版),应用于移动、无线及有限资源的环境
- J2SE(标准版),应用于桌面环境
- J2EE(企业版),应用于基于 Java 的应用服务器
- Java Core API:Java 核心类库
- Java Optional API:对之前 API 的扩充
- 特殊 API:由特殊厂商或组织提供的 API
- 2000.5 JDK1.3、JDK1.4、J2SE1.3 发布
- JavaSE1.3:数据库、WEB、网络、图形、多媒体、电话、影像等信息技术领域
- 2002.2 J2SE1.4发布,接口和类多了60%+
- J2SE1.4:XML支持、安全套接字(Socket)支持(通过 SSL 与 TLS 协议)、全新的 I/OAPI、 正则表达式、日志与断言
- 2004.9 J2SE1.5发布,J2SE1.5 更名至 Java SE5.0(内部版本1.5.0)
- Java SE 5.0(J2SE1.5):泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化 I/O 及可变参数
- 2005.6 Java SE6 发布,集体更名
- J2EE 更名为 JavaEE
- J2SE 更名为 JavaSE
- J2ME 更名为 JavaME
- 2011.7 Java SE7 发布,SUN公司 收购 Oracle
- Java SE7:二进制整数、支持字符串的 switch 语句、棱形语法、多异常捕抓、自动关闭资源的 try 语言等新特性
- 2014.3 Oracle公司 发布 Java SE8
- Java SE8:Lambda 表达 式、流式编程等大量新特性
- 2017.9 Oracle公司 发布 Java SE9 ,强化Java模块化系统
- Java SE9:语言更轻量化,更高效、 GI 垃圾回收器
- 2018.3 Java SE10 发布。包垃圾收集器改善、GC 改进、性能提升、线程管控
- 2018.9 Java SE11 发布。ZGC、Http Client 等重要特性,一共包含 17 个 JEP
- 2019.3 Java SE12 发布
- 2019.9 Java SE13 发布。添加了“文本块”功能
# Java 体系
Java SE:Java Platform,Standard Edition 标准版:各应用平台的基础,桌面开发和低端商务应用的解决方案。
Java EE:Java Platform,Enterprise Edition 企业版:以企业为环境而开发应用程序的解决方案
Java ME :Java Platform, Micro Edition 微型版:致力于消费产品 和嵌入式设备的最佳解决方案
# Java 特性
- 面向对象
- 平台无关性。与平台无关(跨平台)的语言。(它提供了在不同平台下运行的解释环境)
- 简单性。健壮的语言,吸收了 C/C++语言的优点
- 安全性。(自动回收垃圾,强制类型检查,取消指针)
# Java跨平台原理
# JVM 与 GC
# JVM Java虚拟机
虚拟机(Java Virtual Machine) JVM
JVM 可以理解成一个可运行 Java 字节码的虚拟计算机
- 解释器组件,可以实现 Java 字节码和计算机操作系统之间的通信
- 对于不同的运行平台,有不同的JVM
# GC 垃圾回收器
垃圾回收器(Garbage Collection) GC
- 不再使用的内存空间应当进行回收-垃圾回收
- 在 C/C++等语言中,由程序员负责回收无用内存
- Java 语言消除了程序员回收无用内存空间的责任
- JVM 提供了一种系统线程跟踪存储空间的分配情况
- 并在 JVM 的空闲时,检查并释放那些可以被释放的存储空间
- 垃圾回收器在 Java 程序运行过程中自动启用,程序员无法精确控制和干预
# JDK 与 JRE
Java SE 组成概念图
JDK(Java Development Kits) Java 开发工具集
用来开发Java程序的,针对java开发者(JDK是整个JAVA的核心)
JRE(Java Runtime Environment)Java 运行时环境 JVM需要调用解释所需要的类库lib。JRE里面有两个文件夹bin和lib,这里可以认为bin就是JVM,lib就是JVM所需要的类库,而JVM和lib合起来就称为JRE(JRE包含JVM)
JRE主要功能:
- 加载代码:由类 加载器(class loader)完成
- 校验代码:由 字节码校验器(byte code verifier)完成
- 执行代码:由 运行时解释器(runtime interpreter)完成
JDK根路径文件明细:
- bin: 存放JDK各种工具命令(如:javac、java命令等
- db: 安装 Java DB 的路径
- include: 部分平台特定的头文件
- jre: 运行 Java程序的必要环境
- lib: 该路径下的JDK工具命令的实习执行程序
# 环境变量
环境变量相当于 人们生活所需要依赖的东西,比如 鱼的生存离不开水
输入命令 时需要配好环境的路径的前提 才可以使用执行(外部命令) 或者 该路径是已经进入环境 也可以执行(内部命令)
外部命令 需要在系统变量“Path”追加路径 才进行执行(追加后加分号';')
上次更新: 2023/03/12, 00:43:49