003Java的诞生

1、计算机语言发展史

(1)第一代语言

  • 机器语言

    • 我们都知道计算机的基本计算方式都是基于二进制的方式。
    • 二进制:010111001010110010110100
    • 这种代码是直接输入给计算机使用的,不经过任何的转换!

(2)第二代语言

  • 汇编 语言

    • 解决人类无法读懂机器语言的问题
    • 用指令代替二进制
    • 目前应用于:
      • 逆向工程
      • 机器人
      • 病毒
      • ……

(3)第三代语言

摩尔定律告诉我们:当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。

随着时间的发展,摩尔定律已经逐渐失效。我们希望用更简单的写法解决身边越来越复杂的问题,这时繁琐的机器语言和汇编语言已经不能很好满足我们的需求,高级语言随之诞生。

高级语言大体上分为以下两大类:

  • 面向过程
  • 面向对象

C语言是典型的面向过程的语言,C++、Java是典型的面向对象的语言。

不要狭隘的理解一种语言是面向过程还是面向对象,两者是相辅相成的,面向对象中也有着面向过程。

一些常见的高级语言:

  • C语言(所有高级语言的鼻祖)
  • C++语言(在C语言上的扩充)
  • Java语言(最早被人称为“C++--”)
  • C#(微软为了对抗Java推出)
  • Python、PHP、JavaScript……

2、Java帝国的诞生

(1)C&C++的诞生

  • 1972年C诞生

    • 贴近硬件,运行极快,效率极高。
    • 常用于:操作系统,编译器,数据库,网络系统等。
    • 缺点是指针和内存管理太复杂,程序员难以掌握。
  • 1982年C++诞生
    • 面向对象。
    • 兼容C。
    • 常用于:图形领域、游戏等。

(2)我们需要一种全新的高级语言

由于C语言和C++语言都存在门槛高、语法复杂等缺点,我们需要一种全新的高级语言。

我们要建立一种新的语言,它最好:

  • 语法有点像C。
  • 没有指针。
  • 没有内存管理。
  • 真正的可移植性,编写一次,到处运行。
  • 面向对象。
  • 类型安全
  • 有高质量的类库。
  • ……

(3)Java的诞生

Java语言于1995年诞生,最初被命名为Oak,后更名为Java。

1996年,Sun公司发布了Java的第一个开发工具包(JDK 1.0),Java正式成为一种独立的开发工具。

1998年,Java派出3支部队向外扩张:

  • Java 2 标准版(J2SE):去占领桌面。
  • Java 2 移动版(J2ME):去占领手机。
  • Java 2 企业版(J2EE):去占领服务器。

其他使用Java的公司基于Java开发了许多的平台、系统、工具:

  • 构建工具:Ant、Maven,Jekins
  • 应用服务器:Tomcat、Jetty、Jboss、Websphere、weblogic
  • Web开发:Struts、Spring、Hibernate、MyBatis
  • 开发工具:Eclipse、Netbean、IntelliJ IDEA、Jbuilder
  • ……

三高:高可用、高性能、高并发。后来被称为中间件

Java逐渐占领了各种各样的领域:

  • 2006:Hadoop(大数据领域)

  • 2008:Android(手机端)

003Java的诞生的更多相关文章

  1. JSONP的诞生、原理及应用实例

    问题: 页面中有一个按钮,点击之后会更新网页中的一个盒子的内容. Ajax可以很容易的满足这种无须刷新整个页面就可以实现数据变换的需求. 但是,Ajax有一个缺点,就是他不允许跨域请求资源. 如果我的 ...

  2. Lambda表达式的诞生过程

    这是一篇很经典的文章,解决了工作中一些使用过但是又不太明白的知识点,今天终于弄明白了.花了一晚上重新整的,坚决要分享出来!!! 那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的 ...

  3. git的诞生

    Git的诞生   很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了. Linus虽然创建了Linux,但Linux的壮大是靠全世 ...

  4. Selenium2学习-042-Selenium3启动Firefox Version 48.x浏览器(ff 原生 geckodriver 诞生)

    今天又被坑了一把,不知谁把 Slave 机的火狐浏览器版本升级为了 48 的版本,导致网页自动化测试脚本无法启动火狐的浏览器,相关的网页自动化脚本全线飘红(可惜不是股票,哈哈哈...),报版本不兼容的 ...

  5. 3.Git的诞生和其分布式的优点

    Git的诞生 省略了,喜欢的可以看百度. 分布式的优点 先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完 ...

  6. [转载]jQuery诞生记-原理与机制

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=3520 一.看似偶然的 ...

  7. Zygote进程【3】——SystemServer的诞生

    在ZygoteInit的main()方法中做了几件大事,其中一件便是启动Systemserver进程,代码如下: @/frameworks/base/core/Java/com/Android/int ...

  8. 【Android测试】【随笔】性能采集工具——小松鼠诞生记

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4945066.html 起因 去年刚加入TX的时候,我便接手 ...

  9. jQuery诞生记-原理与机制

    一.看似偶然的东西实际是必然会发生的 我大学时候在图书馆翻过一本很破旧的书,讲生物理论的,主要内容就是探讨生命的产生是偶然还是必然.里面很多亚里士多德都看不懂的公式计算什么的,还有模拟原始地球环境出现 ...

  10. 对“Java”的诞生历史、特点、定义等HR常问的简单题

    本人是一个学习Java的新手,在学习了Java以后,对Java的一些总结. 这里共有12点对Java的简单的阐述,如果解释的不怎么样请大家谅解哈. 1.首先我们来看一看,在Java之前的有那些打牌语言 ...

随机推荐

  1. JDBC之Connection

    Connection 目录 Connection Java连接MySQL Connection必备知识点 利用JDBC使用Connection 问题一:为什么Java操作数据库的连接不是越多越好 问题 ...

  2. Git中常见的一些问题总结

    Git中常见的一些问题总结 目录 Git中常见的一些问题总结 1.git添加到暂存区的修改,如果不想要了,怎么撤销 2.git添加到本地仓库,如果不想要了,怎么撤销 3.提交代码时发现别人已经提交了( ...

  3. [AGC043B] 123 Triangle

    个人思路: 首先,经过 \(1\) 轮就没有 \(3\) 了. 先考虑能否递推前 \(i\) 个数的答案,发现不行. 再考虑能否推出 \(i\) 个数的答案的计算公式,也发现不行. 然后就不会了. 正 ...

  4. map函数中调用多个async await请求出现的promise问题解决

    以上这个打印会返回[promise,promise,promise]那么是什么原因造成的呢?我们先来一个方法解决: 但是以上这种解决方式并没有真正解决问题,还是会返回一个[promise,promis ...

  5. stm32 窗口看门狗

    窗口看门狗一般要在几十毫秒后开始喂狗 窗口看门狗在执行0x40时会调用回调函数, 回调函数可以执行喂门狗,否则会执行到0x3F直接复位 参考链接: https://blog.csdn.net/weix ...

  6. Java方法之递归详解【重点】

    递归详解 A方法调用B方法,我们很容易理解! 递归就是:A方法调用A方法!就是自己调用自己. 利用递归可以用简单的程序来解决一些复杂的问题.它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较 ...

  7. MySQL 打开慢查询 主从同步状态

    MySql 打开慢查询 set global log_output='FILE'; SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time ...

  8. holiday11

    holiday11--linux basis From today I will write my note in English ,hope I will stick to it. user and ...

  9. C语言ll一作业01

    1. 作业头 | 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-3 | | ---- | ---- | ---- | | 这个作业目 ...

  10. bzoj 4176

    题意:求$\sum_{i=1}^{n}\sum_{j=1}^{n}d(ij)$ 首先推一发式子: $\sum_{i=1}^{n}\sum_{j=1}^{n}d(ij)$ 有一个结论:$d(nm)=\s ...