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 开发工具集
JRE(Java Runtime Environment)Java 运行时环境

JDK:用来开发Java程序的,针对java开发者(JDK是整个JAVA的核心)
JRE:JVM需要调用解释所需要的类库lib。JRE里面有两个文件夹bin和lib,这里可以认为bin就是JVM,lib就是JVM所需要的类库,而JVM和lib合起来就称为JRE

JRE主要功能:

  • 加载代码:由类加载器(class loader)完成
  • 校验代码:由字节码校验器(byte code verifier)完成
  • 执行代码:由运行时解释器(runtime interpreter)完成

环境变量

环境变量相当于 人们生活所需要依赖的东西,比如 鱼的生存离不开水

输入命令 时需要配好环境的路径的前提 才可以使用执行(外部命令) 或者 该路径是已经进入环境 也可以执行(内部命令)

外部命令 需要在系统变量“Path”追加路径 才进行执行(追加后加分号 ;)

猜你喜欢

转载自blog.csdn.net/weixin_45963193/article/details/113186399