概述

1946 年 2 月 14 日,世界上第一台计算机 ENIAC 诞生,使用的是最原始的穿孔卡片。这种卡片上使用的语言是只有专家才能理解的语言,与人类语言差别极大,这种语言就称为机器语言。机器语言是第一代计算机语言。这种语言本质上是计算机能识别的唯一语言,人类很难理解。以后的语言就是在这个的基础上简化而来。虽然后来发展的语言能让人类直接理解但最终送入计算机的还是这种机器语言

什么是计算机语言

计算机语言(Computer Language) 指用于 计算机 之间通讯的语言。计算机语言是人与计算机之间传递信息的媒介。计算机系统最大特征是 指令 通过一种语言传达给机器。为了使计算机进行各种工作,就需要有一套用以编写计算机程序的数字、字符、和语法规则,由这些字符和语法规则组成计算机各种指令。这就是计算机能接受的语言(计算机语言)

计算机语言的迭代

机器语言

使用 01 的二进制码,但是在做计算的时候,比如 128 ,我们要写为 10000000,其它的数以此类推,如果再做计算就会变的非常的不尽人意,如果想要显示 HelloWorld,可能要几百个 01 的组合,可读性差,难以查错!(智商不够用)

汇编语言

为了编程的方便,以及解决更加复杂的问题,程序员开始用英文的缩写的助记符来表示基本的计算机操作 (汇编语言的主题是汇编指令,汇编指令和机器指令的差别在于指令的表示方法上,汇编指令是机器指令便于记忆的书写格式)。这些助记符就构成了汇编语言的基础。计算机在芯片技术以 摩尔定律 的速度发展。计算机的性能越来越强,可以处理更多的事情了。这个时候发现汇编语言无法应付了。于是高级语言出来了…

高级编程语言

在与计算机的不断交流中,人们对计算机程序的移植性需求不断提高,此时急需要一种不依赖于特定型号的计算机的语言,用这种语言编写的程序能在在各种平台都正常运行。从最初的语言诞生至今,已经相继出现了几百种语言。高级语言的发展也从最初的结构化语言发展成为面向过程语言设计和面向对象语言设计。面向过程语言设计的代表有:CFortranCOBOLADA,而面向对象语言设计的代表则为:JavaC++C#

hello world

Java 语言的发展史

Java 不光是一门编程语言,更是一套生态,一种信仰

詹姆斯·高斯林

詹姆斯·高斯林

  • 生日:1955 年 05 月 19 日
  • Java 之父,在他 12 岁的时候,他已能设计电子游戏机,帮忙邻居修理收割机。大学时期在天文系担任程式开发工读生,1977 年获得了加拿大卡尔加里大学计算机科学学士学位,1983 年获得了美国卡内基梅隆大学计算机科学博士学位。

什么是 Java

Java 是一门面向对象编程语言,不仅吸收了 C++ 语言的各种优点,还摒弃了 C++ 里难以理解的多继承、指针等概念,因此 Java 语言具有功能强大和简单易用两个特征。Java 语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员 以优雅的思维方式进行复杂的编程

Java 可以做什么

  • 互联网应用: 阿里巴巴、天猫、淘宝、京东、微信、美团、去哪儿、携程
  • 大型企业级应用: CRM(客户关系管理系统)、ERP(企业资源管理系统)、OA(在线办公系统)
  • 金融领域: 银行、保险、证券、交易所、数字货币
  • 互联网管理: 供应链、物流
  • 电子政务: 政府部门大多数信息化系统
  • 游戏: 大型 MMORG 后台的数据统计
  • 物联网: 电子设备信息采集
  • 大数据: 海量数据分析、数据挖掘、数据可视化
  • 人工智能: 神经网络、卷织神经网络、深度学习、遗传算法
  • 区块链: 超级账本计划、以太坊、EOS

Java 版本历程

版本描述
1991 年 01 月Sun 公司成立了 Green 项目小组,专攻智能家电的嵌入式控制系统
1991 年 02 月放弃 C++,开发新语言,命名为 Oak
1991 年 06 月詹姆斯·高斯林 开发了 Oak 的解释器
1992 年 01 月Green 完成了 Green 操作系统、Oak 语言、类库等开发
1992 年 11 月Green 计划转化成 “FirstPerson”,一个 Sun 公司的全资母公司
1993 年 02 月获得时代华纳的电视机顶盒交互系统的订单,
于是开发的重心从家庭消费电子产品转到了电视盒机顶盒的相关平台上。
1994 年 06 月FirstPerson 公司倒闭,员工都合并到 Sun 公司。
Liveoak 计划启动了,目标是使用 Oak 语言设计出一个操作系统。
1994 年 07 月第一个 Java 语言的 Web 浏览器 WebRunner(后来改名为 HotJava),
Oak 更名为 Java
1994 年10 月VanHoff 编写的 Java 编译器用于 Java 语言
1995 年 03 月在 SunWorld 大会,Sun 公司正式介绍了 Java 和 HotJava。
1996 年 01 月JDK 1.0 发布
1997 年 02 月J2SE 1.1 发布
1998 年 12 月J2SE 1.2 发布
1999 年 06 月发布 Java 的三个版本:J2SE、J2EE、J2ME
2000 年 05 月J2SE 1.3 发布
2001 年 09 月J2EE 1.3 发布
2002 年 02 月J2SE 1.4 发布
2004 年 09 月J2SE 1.5 发布,将 J2SE 1.5 改名 JavaSE 5.0
2005 年 06 月JavaSE 6.0 发布,J2EE 更名为 JavaEE,J2SE 更名为 JavaSE,J2ME 更名为 JavaME
2006 年 12 月JRE 6.0 发布
2006 年 12 月JavaSE 6 发布
2009 年 04 月Oracle 收购 Sun
2009 年 12 月JavaEE 6 发布
2011 年 07 月JavaSE 7 发布
2014 年 03 月JavaSE 8 发布(LTS,支持日期截止到 2025 年)
Oracle 在 2019 年 01 月停止免费商用更新
Oracle 在 2020 年 12 月停止非商用免费更新
AdoptOpenJDK 在 2023 年 09 月或之前停止免费更新
2017 年 07 月JavaSE 9 发布
2018 年 03 月JavaSE 10 发布
2018 年 09 月Java SE 11 (18.9 LTS)
Oracle 不为此版本提供免费更新
AdoptOpenJDK 在 2022 年 09 月或之前停止免费更新
2019 年 03 月Java SE 12 发布
Oracle 不为此版本提供免费更新
OpenJDK 在 2019 年 09 月停止免费更新
未来的 13 和 17 是 LTS 版

Java 三大版本

JavaSE

Java Platform Standard Edition,Java 平台标准版(Java 基础)

JavaME

Java Platform Micro Edition,Java 平台微版,用于嵌入式开发(机顶盒、打印机等)

JavaEE

Java Platfrom Enterprise Edition,Java 企业版(天猫、斗鱼等)

Java 语言的特性

简易性

  • Java 丢弃了 C++ 中很难理解的部分,如操作符重载、多继承、自动的强制类型转换
  • 特别是 Java 语言不使用指针,而且提供了自动的垃圾回收机制,是的程序员不必为内存管理而担忧

面向对象

  • 万物皆对象

分布式

  • Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(Java Net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等

健壮性

  • Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择

安全性

  • Java 通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。如:安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查

可移植性

  • 跨平台: JVM 作用用来解释执行字节码文件根据不同的平台进行不同的解释执行,从而可以达到跨平台作用,C++ 生成直接可以运行的机器码文件。Java 素有 一次编译,到处运行

多线程

  • 多线程可以帮你编写出 CPU 最大利用率的高效程序(CPU 的抢占式调度),使得空闲时间保持最低(提高效率)