C语言
C语言诞生于1972年(Java诞生于1995年,早了将近20年!)
C语言的特性:
- 贴近硬件,运行速度快,效率较高
- 服务于操作系统、编译器、数据库、网络系统……
- 不具备可移植性
- 缺点很大——指针和内存管理
- 虽然C语言的指针非常强大,可以操作内存,但却并没有为之提供一套工具用于做越界的监测
- 没有内存管理让C语言的编写非常困难和复杂,出错率较高
C++语言
C++诞生于1982年,具有了(1)面向对象的特性(2)兼容C语言(3)添加了一些静态性能检查,总的来说C++性能较好。但是相对于C语言,C++的学习难度更大,更复杂。当前的C++主要服务于游戏领域、图形领域……
要建立一个新语言
C语言和C++都有很大的缺点,所以建立一个新语言很有必要,要求这个语言:
- 语法和C接近
- 没有指针
- 有内存管理
- 可移植(一次编写,到处运行)
- 面向对象
- 类型安全
- 高质量的类库
一开始,这个语言是被命名为C+±,后来想命名为Ork,可惜被注册了,最终定名为Java
为了实现可移植性(跨平台),于是有了JVM(虚拟机),Java程序大部分都运行在JVM上,所以一台电脑只要安装了JVM就可以运行Java程序,实现了一次编写,到处运行!
Java出生
1995年的互联网刚刚开始流行,那时的网页都是既简单又粗糙,缺乏互动性。在当时有一款图形界面程序(Applet),Java正因为Applet在美观程度上遥遥领先。
比尔盖茨(Bill Gates):“Java是迄今为止设计的最好的语言”。
之后微软在获得了Java许可证之后,一度想要将Java邦斯在windows上面并作出修改,这样的话Java的可移植性就受到了破坏,最终被迫退出了Java领域
- Java 2 标准版(J2SE):目标占领桌面端——失败了!
- Java 2 移动版(J2ME):目标占领手机端——失败了!
- Java 2 企业版(J2EE):目标占领服务器端——成功了!
这才发现,原来Java是天生的服务器好手!
Java发展
大量的企业开始进军Java领域并基于Java开发了诸多平台、系统和工具
- 构建工具:Ant、Maven、Jekins
- 应用服务器:Tomcat、Jetty、Jboss、Websphere、Weblogic
- web开发:Struts、Spring、Hibernate、myBatis
- 开发工具:eclipse、Wetbean、Intellij Idea
- 2006年:Hadoop(大数据领域)
- 2008年:Android(手机端)
补充——“三高问题”
高可用、高性能、高并发