1Java 起源与演变

1.1、起源

20 世纪 90 年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它可以大幅度提升消费性电子产品的智能化程度。

SUN 公司为了抢占市场先机,在 1991 年成立了一个由詹姆斯·高斯林(James Gosling)领导, 名为“Green”项目小组,目的是开发一种能够在各种消费性电子产品上运行的程序架构。

那么使用何种编程语言来设计,是项目小组头疼的事。当时 C++较为有优势的,项目小组首先考虑的是采用它来编写程序,但 C++过于复杂和庞大,再加上由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,需要让编写的程序跨平台运行,假如用 C++编写的话对程序的跨平台运行不友好。

最后项目小组决定:既不用 C++编写,也不开发全新的编程语言,而是对 C++进行改造:去除了C++复杂的指针和内存管理,并结合嵌入式系统的实时性要求,最终在 1992 年,他们开发了一种名为“Oak”的面向对象语言。

科当他们在向硬件生产商进行演示的时候,硬件生产商对此并不感冒,OaK 语言因为缺乏硬件的支持而无法进入市场,从而被搁置一旁。

1994 年,项目小组看到了浏览器在未来的发展前景,于是决定将 OaK 应用于万维网。1995 年, 他们用 OaK 语言研发了一种能将小程序嵌入到网页中执行的技术——Applet,由于 Applet 不仅能嵌入网页,还可随同网页在网络上进行传输,这让无数的程序员看到了 OaK 这门语言,与此同时,OaK 正式更名为 Java。从此,Java 在互联网的推动下火了。

2.2、演变

1996 年 1 月,SUN 公司推出了 JDK1.0。在 JDK1.0 发布后,有很多程序员学习并运用 Java 来制作网页,JDK 包括两大部分:开发工具和运行环境。

运行环境包括核心 API、集成 API、用户界面 API、发布技术、Java 虚拟机(JVM)。JDK1.0 的发布, 标志着 Java 成为一种独立的开发工具。在同年 9 月,约有 8.3 万个网页应用了 Java 技术来制作。

JDK1.0 的代表性技术有:Java 虚拟机、Applet、AWT 等。

1997 年 2 月,SUN 公司紧接着推出了JDK 1.1,在推出后 3 周时间里,达到了近 22 万次的下载量。

4 月 2 日,首届 Java One 大会在美国旧金山召开,参加会议的人超过一万人,创造了当时全球同类会议规模最高的纪录。9 月,Java Developer Connection 社区成员超过 10 万,同年还有 10 个最主要的操作系统供应商正式声明将在他们的产品中使用 Java。

JDK1.1 的代表性技术有:JDBC、JavaBeans、RMI、JAR 文件格式、Java 语法中的内部类和反射。

1998 年 12 月 8 日,JDK1.2——第二代 Java 平台的企业版 J2EE 发布。

1999 年 6 月,Sun 公司把 Java 体系分为三个方向:

J2ME(Java2 Micro Edition,Java2 平台的微型版),应用于移动、无线及有限资源的环境;

J2SE(Java 2 Standard Edition,Java 2 平台的标准版),应用于桌面环境;

J2EE(Java 2Enterprise Edition,Java 2 平台的企业版),应用于基于 Java 的应用服务器。

随着供应商的不同,Java 的 API 也分为三大类:

Java Core API:Java 核心类库;

Java Optional API:对之前 API 的扩充;

特殊 API:由特殊厂商或组织提供的 API。

Java 2 平台的发布,是 Java 发展过程中最重要的一个里程碑,标志着 Java 的应用开始普及。

JKD1.2 的代表性技术有:Swing、Java IDL、EJB、Java Plug-in 等,在 API 文档中,添加了 strictfp

关键字和 Collections 集合类。

1999 年 4 月 27 日,HotSpot 虚拟机发布。HotSpot 是由一家叫“Longview Technologies”的小公司开发的,后来被 SUN 公司收购。HotSpot 虚拟机发布时是作为 JDK 1.2 的附加程序提供的,后来它成为了 JDK 1.3 及之后所有版本的 Sun JDK 的默认虚拟机 。

2000 年 5 月,JDK1.3、JDK1.4 和 J2SE1.3 相继发布,J2SE1.3 是对 J2SE1.2 的补充和扩展,从应用领域的角度分析,JavaSE1.3 已经涵盖了数据库、WEB、网络、图形、多媒体、电话、影像等大部分的信息技术领域。

2002 年 2 月 26 日,J2SE1.4 发布。与 J2SE1.3 相比,多了近 62%的类和接口。在这些新特性当中, 还提供了广泛的XML 支持、安全套接字(Socket)支持(通过 SSL 与 TLS 协议)、全新的 I/OAPI、正则表达式、日志与断言。

2004 年 9 月 30 日,J2SE1.5 发布,成为 Java 语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5 更名为 Java SE 5.0(内部版本号 1.5.0)。Java SE 5.0 包含了从 1996 年发布 1.0 版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O 及可变参数。

2005 年 6 月,在 Java One 大会上,Sun 公司发布了Java SE 6。此时,Java 的各种版本已经更名, 已取消其中的数字 2,如 J2EE 更名为 JavaEE,J2SE 更名为 JavaSE,J2ME 更名为 JavaME。

2011 年 7 月 28 日,收购 Sun 公司的 Oracle 发布了 Java SE 7,引入了二进制整数、支持字符串的switch 语句、棱形语法、多异常捕抓、自动关闭资源的 try 语言等新特性。

2014 年 3 月 18 日,Oracle 公司发布 Java SE8,这次版本升级为Java 带来了全新的 Lambda 表达式、流式编程等大量新特性,这些新特性使得 Java 变得更加强大。

2017 年 9 月 22 日,Oracle 公司发布 Java SE 9,这次版本升级强化了 Java 的模块化系统,让 Java 语言更轻量化,且采用了更高效、更智能的 GI 垃圾回收器,并在核心类库上进行大量更新,可进一步简化编程。

2018 年 3 月 21 日,Java SE 10 发布,Java 10 版本带来了很多新特性,其中最备受广大开发者关注的莫过于局部变量类型推断。此外,还包垃圾收集器改善、GC 改进、性能提升、线程管控等新特性。

2018 年 9 月 26 日,Java SE 11 发布。这是 Java 大版本周期变化后的第一个长期支持版本(LTS 版本持续支持到 2026 年 9 月)。Java11 带来了 ZGC、Http Client 等重要特性,一共包含 17 个 JEP

(JDK Enhancement Proposals,JDK 增强提案)。

2019 年 3 月 20 日,Java SE 12  发布。Java 12 是短期支持版本,可在下一个版本发布之前获得 Oracle

的商业支持。

2019 年 9 月 23 日,Java SE 13 发布,此版本中添加了“文本块”,文本块是一个多行字符串文字, 避免对大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。

2、Java 体系与特点

Java SE:Java Platform,Standard Edition

标准版:各应用平台的基础,桌面开发和低端商务应用的解决方案。

Java EE:Java Platform,Enterprise Edition

企业版:以企业为环境而开发应用程序的解决方案

Java ME :Java Platform, Micro Edition

微型版:致力于消费产品 和嵌入式设备的最佳解决方案

Java 可以做什么?

开发桌面应用程序

银行软件、商场结算软件

开发面向 Internet 的web 应用程序

门户网站(工商银行)、网上商城、阿里巴巴、电子商务网站提供各行业的解决方案

金融、电信、电力... 嵌入式开发

移动电话、可视电话、数字机顶盒和汽车导航系统

Java 的特性

一种纯面向对象的编程语言。

一种与平台无关(跨平台)的语言。(它提供了在不同平台下运行的解释环境) 一种健壮的语言,吸收了 C/C++语言的优点。

有较高的安全性。(自动回收垃圾,强制类型检查,取消指针)

3、Java 跨平台原理

3、1Java 技术的两种核心机制

Java 虚拟机(Java Virtual Machine)

JVM 垃圾回收器(Garbage Collection) GC

3、2Java 虚拟机(JVM)

JVM 可以理解成一个可运行 Java 字节码的虚拟计算机系统

  • 它有一个解释器组件,可以实现 Java 字节码和计算机操作系统之间的通信
  • 对于不同的运行平台,有不同 的 JVM。

JVM 屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。

3、3垃圾回收器(GC)

不再使用的内存空间应当进行回收-垃圾回收。

在 C/C++等语言中,由程序员负责回收无用内存。

Java 语言消除了程序员回收无用内存空间的责任:

JVM 提供了一种系统线程跟踪存储空间的分配情况。

并在 JVM 的空闲时,检查并释放那些可以被释放的存储空间。

垃圾回收器在 Java 程序运行过程中自动启用,程序员无法精确控制和干预。

3、4Java SE 的组成概念图

3.5 JDK

JDK(Java Development Kits)-- Java 开发工具集

JRE(Java Runtime Environment)Java 运行时环境JVM

Java API (应用程序编程接口)

Java 编译器(javac.exe)、Java 运行时解释器(java.exe)、Java 文档化化工具(javadoc.exe)及其它工具及资源

3.6 JRE 的三项主要功能:

加载代码:由类加载器(class loader)完成;

校验代码:由字节码校验器(byte code verifier)完成;

执行代码:由运行时解释器(runtime interpreter)完成。

4、什么是程序

程序一词来自生活,通常指完成某些事务的一种既定方式和过程在日常生活中,可以将程序看成对一系列动作的执行过程的描述

例如:

去银行办理业务去商品购物

等等..

计算机中的程序

为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令(即命令)的集

Java 程序的类型

命今行程序

GUI 程序

Applet 程 序

J2EE web 应用程序

5、Java 程序开发的三个步骤

6、语法

注释 :java 程序有三种注释方式单行注释://注释

多行注释:/*注释*/ 文档注释:/**注释*/

java 代码的位置

class 必须编写在.java 文件中 (具体详情参考 helloWorld 工程) 语法规则:

java 是严格区分大小写的java 是一种自由格式的语言

代码分为结构定义语句和功能执行语句功能执行语句的最后必须用分号结束

Hello Java(JAVA的简介)相关推荐

  1. 双表查询java代码_什么是JDBC?Java数据库连接性简介

    JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结果集.JDBC在1997年作为JDK 1.1的一部分发布,是为Java持久层开发的首批 ...

  2. java 设计模式_快速上手Java设计模式之简介

    阅读本文约需要5分钟 大家好,我是你们的导师,经常看我朋友圈的同学应该知道,我每天会在微信上给大家免费提供以下服务! 1.长期为你提供最优质的学习资源! 2.给你解决技术问题! 3.每天在朋友圈里分享 ...

  3. java.util.concurrent简介

    文章目录 主要的组件 Executor ExecutorService ScheduledExecutorService Future CountDownLatch CyclicBarrier Sem ...

  4. Java GC系列(1):Java垃圾回收简介

    转载自  Java GC系列(1):Java垃圾回收简介 这篇教程是系列第一部分.首先会解释基本的术语,比如JDK.JVM.JRE和HotSpotVM.接着会介绍JVM结构和Java 堆内存结构.理解 ...

  5. java 模块化osgi_OSGi简介–模块化Java

    java 模块化osgi OSGi联盟是这种搁浅的管理机构,它始于1999年.其最初目标是为网络设备创建开放搁浅. 基于此思想,此规范也针对Java引入. Eclipse在Java中是第一个. 他们于 ...

  6. 【Java程序设计】Java基础类库简介

    Java基础类库简介 文章目录 Java基础类库简介 一.Java基础类库介绍 二.语言包(java.lang) (1)数据类型包裹类 1.生成数据类型包裹类对象的方法 2.得到基本数据类型数据的方法 ...

  7. Java虚拟机JVM简介与理解(三)

    Java虚拟机JVM简介与理解(三) 问题背景 PC程序计数器 虚拟机栈 本地方法栈 堆 元空间 方法区 运行时常量池 直接内存 Lyric: 彻底把我囚禁在你的呼吸 问题背景 Java虚拟机JVM简 ...

  8. Java JSON格式简介说明

    转自: Java JSON格式简介说明 下文笔者讲述java中JSON格式的相关简介说明,如下所示: JSON简介说明 JSON(JavaScript Object Notation) 是一种轻量级的 ...

  9. java开发工具包 jdk_什么是JDK? Java开发工具包简介

    java开发工具包 jdk Java开发工具包(JDK)与JVM(Java虚拟机)和JRE(Java运行时环境)一起是Java编程中使用的三个核心技术软件包之一. 重要的是要区分这三种技术,并了解它们 ...

  10. Java开发环境简介及下载

    文章目录 一. Java开发工具:JDK(Java Development Kit) 二.IDE(集成开发环境):Eclipse或IDEA 三. 文本编辑器:Visual Studio Code(VS ...

最新文章

  1. unigui中弹出对话框原窗体是没有了_最前线 | 微信对话框“搜一搜”功能上线,独辟蹊径的腾讯打着什么算盘?...
  2. 从C++strStr到字符串匹配算法
  3. 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
  4. 美国杜克大学计算机专业世界排名,美国杜克大学世界排名情况怎么样?
  5. Exp8 web基础
  6. geoserver的api接口_geoserver REST使用
  7. 简而言之Java.io:22个案例研究
  8. 更新fielddata为true_在pytorch中停止梯度流的若干办法,避免不必要模块的参数更新...
  9. gini系数 决策树_SKlearn中分类决策树的重要参数详解
  10. scala 泛型入门简介
  11. google 翻译 api
  12. 【转帖】Python 资源索引
  13. matlab新建数据字典及如何导入
  14. Micrium 开放了µC/OS-III源代码
  15. 永久删除计算机文件怎么操作步骤,如何彻底删除电脑中的文件 永久删除文件方法...
  16. 计算机count是什么函数,计算机里COUNT是什么函数?怎么用的?好评!!
  17. Huffman文件压缩之文件夹压缩
  18. PyTorch载入预训练权重方法和冻结权重方法
  19. 兴趣专业测试软件,霍兰德职业兴趣测试 在线工具
  20. PCL学习(一)显示PCD文件

热门文章

  1. ARM存储器之:高速缓冲存储器Cache
  2. 读IC封装基础与工程设计实例记录一
  3. OFCMS 发布1.1.2 java cms ofcms
  4. 开源 免费 java CMS - FreeCMS-1.5 站内信
  5. Linux更改一个所有者root为只读权限的文件的权限
  6. 使用tkinter加载png、jpg等图片
  7. 经典网页设计:20个简约风格的电子商务网站
  8. 服务器Apache配置以及改变工作目录
  9. linux常用命令-查询手册
  10. 让thinkpad更安静——控制风扇转速,解决tpfancontrol导致的关机、重启、黑屏