1. Java的历史和演变

文章目录

  • Java的历史和演变
    • 1. 计算机语言的历史
      • 1.1 C语言之前的高级语言
      • 1.2 C语言诞生
      • 1.3 C++ (带类的C语言)
      • 1.4 Java的诞生
        • 1.4.1 推动Java发展的两大动力
        • 1.4.2 Java 和其他计算机语言
    • 2. Java改变 Internet 的方式
    • 3. Java的关键特性
    • 4. Java的演变历史

Java的历史和演变

1. 计算机语言的历史

​ 第一代语言:机器语言

​ 主要编写二进制码,直接编写100101010101这样的二进制,以打孔机为代表。

​ 第二代语言: 低级语言

​ 主要以汇编语言为代表

​ 在低级语言当中已经引入了一些英语单词。

​ 第三代语言:高级语言

  • C、Pascal、Fortran面向过程的语言
  • C++面向过程/面向对象
  • Java跨平台的纯面向对象的语言/也支持面向过程了
  • .NET跨语言的平台

1.1 C语言之前的高级语言

  • FORTRAN -1957 , 第一种被广泛使用的高级语言,高效的汇编语言。
  • BASIC -1964 ,易学习,功能弱。
  • COBOL -1959
  • Pascal -1970 ,第一个结构化程序语言。

C语言之前的这些版本,程序员通常需要在品质不同的各种计算机语言之间进行选择。BASIC,COBOL,FORTRAN,没有遵循结构化设计原则,依赖与GOTO作为程序控制的主要手段,很容易出现大量混乱的跳转语句和条件分支语句,使程序很难理解。Pascal的语言虽然是结构化的,但是不是针对高效率而设计的。

1.2 C语言诞生

  • 20世纪60年代,贝尔实验室的研究员**Ken Thompson(肯·汤普森)**发明了B语言,并使用B编了个游戏 Space Travel,他想玩自己这个游戏,所以他背着老板找到了台空闲的机器 PDP-7,但是这台机器没有操作系统,于是Thompson着手为PDP-7开发操作系统,后来这个OS(Operating System)被命名为 UNIX,Thompson(肯·汤普森)发明了UNIX。

  • 1971年,Ken Thompson的同事D.M.Ritchie(DM里奇),也很想玩Space Travel,所以加入了Ken Thompson,合作开发UNIX,他的主要工作是改进Thompson的B语言。

  • 最终,在1972年这个新语言被称为C,取BCPL的第二个字母,也是B的下一个字母

C语言的演变历程

  1. CPL(Combined Programming Language) - 1963,CPL是1963年剑桥大学发明的,C语言的祖先。

  2. BCPL(Base Combined Programming Language) - 1967,剑桥的Matin Richards 对CPL做了简化,推出了BCPL

  3. B(B Programming Language) - 1969,贝尔实验室的Ken Thompson(肯·汤普森) 对BCPL又做了改进,设计出了简单的且接近硬件的B语言,并用B语言写了第一个UNIX OS

  4. C(C Programming Language) - 1972,贝尔实验室的另外一个人Dennis MacAlistair Ritchie(D.M.Ritchie - DM里奇)在B的基础上设计出了C语言。C 保持了B的优点(精炼、接近硬件),又克服了他的缺点(过于简单,数据无类型)。

1.3 C++ (带类的C语言)

C++(C plus plus Programming Language) - 1983,还是贝尔实验室的人,Bjarne Stroustrup(本贾尼·斯特劳斯特卢普) 在C语言的基础上推出了C++,这个时候你可能会想C这么强大的语言已经出现了为什么还会出现C++呢?这是因为C语言处理复杂性的能力也是有一定的限度的,C++ 它扩充和完善了C语言,特别是在面向对象编程方面,一定程度上克服了C语言编写大型程序时的不足。

1.4 Java的诞生

Java是由James Gosling、Patrick Naughton 、 Chris Warth 、Ed Frank 、和 Mike Sheridan 于1991年在sun公司构想出来的,开发第一个版本花费了18个月,这种语言最初称为Oak,在1995年被命名为Java。

1.4.1 推动Java发展的两大动力

一、嵌入到各种消费类电子设备的软件

二、万维网

小结:Java的设计、测试和不断改进是由真正从事编程工作的人员完成的。它是扎根于设计人员的需求和经验的一种语言,因此Java是程序员的语言。

1.4.2 Java 和其他计算机语言

Java和C

  • Java 对Internet 编程
  • C 对系统的编程

Java 和 C#

相同点:他们都是面向对象的语言,也就是说,它们都能实现面向对象的思想(封装,继承,多态),两者共享相同的语法,都支持分布式编程,并且都利用相同的对象模型。

不同点:点这里…

Java 和 C++

  • 都是面向对象的语言,都支持封装、继承和多态。
  • Java不提供指针来直接访问内存,程序内存更加安全。
  • Java的类是单继承的,C++支持多继承;虽然Java 的类不可以多继承,但是接口可以多继承。
  • Java有自动内存管理机制,不需要程序员手动释放无用内存。

2. Java改变 Internet 的方式

  • Java applet(目前已被标记废弃)
  • 安全性
  • 可移植性
  • Java的魔力–字节码(bytecode)
  • JVM(Java virtual Machine)虚拟机–设计初为字节码解释器(HotSpot技术,JIT编译器)
  • Java Web Start处理多种类型的Java程序的部署机制
  • Servlet–服务器端上执行的小程序(与Servlet相似的CGI)

3. Java的关键特性

  • 简单性 – 最初是面向程序员的,Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。(JVM 的话是 C++ 实现的,Java 类库是 Java 实现的)
  • 安全性
  • 可移植性
  • 面向对象 – Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
  • 健壮性 – Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证,对指针的丢弃是Java的明智选择。
  • 多线程
  • 体系结构中立–得益于JVM。
  • 解释执行
  • 高性能
  • 分布式 – Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
  • 动态性
  • 开源

4. Java的演变历史

Sun公司

  • Java 1.0
  • Java 1.1
  • Java 2 – Java新时代
    • 增加了Swing
    • 集合框架
  • J2SE 1.3
  • J2SE 1.4 – 与之前版本几乎达到100%的源代码兼容。
  • J2SE 5 – 从根本上扩展了java语言的应用领域,功能和范围(JDk5)。
    • 有以下新特性:
      1. 泛型
      2. 注解(annotation)
      3. 自动装箱和自动拆箱
      4. 枚举
      5. 增强的 for-each 风格和 for 循环
      6. 可变参数(varargs)
      7. 静态导入
      8. 格式化的 I/O
      9. 并发使用工具
  • Java SE 6 – 内部的开发版本号是1.6(JDk6)。

Oracle公司

  • Java SE 7 – Oracle收购Sun公司后,第一个重要发布版本。(JDk7)

    • 有以下新特性:
      1. String 现在能控制switch语句。
      2. 二进制整形字面值
      3. 数值字面值的下画线
      4. 扩展的 try 语句称为带资源的 try (try-with-resources)语句,这种 try 支持自动资源管理。(例如:当stream不再需要时,现在能够自动关闭他们。)
      5. 构造泛型
      6. 对异常处理进行增强,单个 catch 字句能够捕获两个或更多个异常,并且对重新抛出的异常提供更好的类型检查。
      7. 对某些方法(参数的长度可变) 类型关联的编译器警告进行了改进,尽管语法并没有改变,并且对警告具有更大的控制权。
      8. 对 NIO 框架进行了增强,并且增加了 Fork/Join 框架。
  • Java SE 8 (JDk8)–新增了lambda表达式。

  • Java SE 9 ( JDK9 )

    • 新增的特性:
      1. 模块
      2. JShell脚本工具
        1. 什么时候会用到JShell工具呢?当我们编写的代码非常少的时候,而又不愿意编写类,main方法,也不愿意去编译和运行,这个时候可以使用JShell工具。
        2. 启动JShell工具,在DOS命令行直接输入JShell命令。
        3. 1. Java的历史和演变_第1张图片
        4. 接下来可以编写Java代码,无需写类和方法,直接写方法中的代码即可,同时无需编译和运行,直接回车即可。
        5. JShell工具,只适合片段代码的测试,开发更多内容,建议编写在方法中。
      3. 支持私有接口方法
      4. 给javadoc工具添加了搜索功能。
  • 最新版本为 Java SE 13 (JDK 13)。

  • 是一种面向Internet的编程语言,随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。

总结:

  1. 大概了解了Java的演变历史和其功能的扩展,发现几乎每次版本的更新都对 API 库进行了更新,Java中JVM充满了神秘感,作为一个初学者发现其中有很多专业方面的词都不是很明白,其中查了一部分,但是还有很多要放在今后的学习中慢慢深入。
  2. 这篇博客会在今后的学习不断的修改,当然如果有大佬指点带萌新感激不尽,在此留下邮箱[email protected],欢迎学习Java的朋友一起讨论学习,一起进步。

你可能感兴趣的:(JavaSE,Java的历史和演变,java,编程语言)