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. 解决 http://www.diamond-sh.com/favicon.ico 404 (Not Found) 报错问题

    html5页面中经常会遇到这个报错,解决方法有以下两种: 1. 根目录下建一个个favicon.ico文件,在head标签引入favicon.ico文件即可 <link href="f ...

  2. JavaScript逗号运算符的用法

    var a = 3, b b = (a++, a) 与 var a = 3, b b = a++ 区别

  3. uniapp 上传

    fileList1: [], // uviewui ui组件<u-upload uploadText="上传打款凭证" :fileList="fileList1&q ...

  4. Mogdb / opengauss 用户密码错误,用户被锁

    # 问题概述xxx客户新上一套opengauss数据库,在测试中程序里用户的密码配置错误,导致用户被锁# 解决方案1.跟oracle 语法一样alter user xxx account unlock ...

  5. K8S informer机制

    一.informer介绍 Kubernetes基于声明式API的设计理念,所谓声明式API,即告诉Kubernetes Controller资源对象的期望状态,这样为Kubernetes在事件通知后, ...

  6. 将\u8BF7字符串转换为汉字

    转发自  将\u8BF7\u9009\u62E9 字符串转为汉字的代码_javascript技巧_脚本之家 链接:https://www.jb51.net/article/25187.htm

  7. Word03 政府工作年度报告-office真题

    1.课程的讲解之前,先来对题目进行分析,首先需要在考生文件夹下,将Wrod素材.docx文件另存为Word.docx,后续操作均基于此文件,否则不得分. 2.这一步非常的简单,打开下载素材文件,在[文 ...

  8. CentOS7 修改root密码

    能登录系统修改root密码 passwd root(可以是其他什么用户) 输入新密码(两次)   忘记root密码不能进入系统,修改root密码   1.开机进入grub界面按e进入单用户编辑模式 2 ...

  9. centos7部署elasticsearch-7.16.2分布式集群(此版本修复了log4j2漏洞)

    简介 Elasticsearch 是一个分布式.RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例. 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之 ...

  10. memoのVIM

    必须给今天看到的vim相关的东西记录一下! vim文档中文化 https://github.com/yianwillis/vimcdoc 速查表 https://github.com/skywind3 ...