目录
- 现代编程语言
- 发展历史
- TIOBE编程语言排行
- Java语言发展
- Java语言的应用
- Java语言的特点
- 参考资料
现代编程语言
发展历史
- 1950与1960年代
- Fortran (1957年)
- Lisp (1958年)
- COBOL (1959年)
- 1967-1978:确立了基础范式
- Simula (1960年代晚期),第一个面向对象编程的编程语言。
- Pascal (1970年)
- C语言 (1969至1973年间)
C语言的出现,对之后的编程语言的设计有着深远的影响,根据我查到的资料,C语言是这么发展过来的。
- ALGOL 58 (1958年),最早称为国际代数语言,一种编程语言。
- ALGOL 60 (1960年),在ALGOL 58的基础上被创造。
- CPL (1963年),源自于ALGOL 60,由英国剑桥大学和伦敦大学首先开发出来。
- BCPL (1966年),源自CPL,由剑桥大学的马丁·理查德所发展出来。
- B语言 (1969年),由美国贝尔实验室的肯·汤普森在丹尼斯·利奇的支持下设计出来的。最初是想在UNIX上开发一个Fortran编译器,但后来引进了BCPL的风格,形成了一个新的语言。
- C语言 (1969至1973年间),丹尼斯·利奇以B语言为基础开发出C语言。
- 1980年代:增强、模块、性能
- SQL (1980年)
- C++ (1983年),比雅尼·斯特劳斯特鲁普在贝尔实验室工作期间发明并实现了C++。
- Perl (1987年)
- 1990年代:互联网时代
- Python (1991年)
- Visual Basic (1991年)
- Ruby (1993年)
- Lua (1993年)
- Java (1995年),下文详述。
- JavaScript (1995年)
- PHP (1995年)
- 2000年代至今
- C# (2001年)
- Visual Basic .NET (2001年)
- Go (2009年)
- Swift (2014年)
TIOBE编程语言排行
TIOBE开发语言排行榜是一个反应编程语言热门程度的榜单,你可以到TIOBE官网查看最新一个月的榜单,下图是排名趋势。
Java语言发展
- 1990年代初,Sun公司的詹姆斯·高斯林等人开发了Java语言的雏形,最初命名为Oak。目标设置在家用电器等小型系统的编程语言,应用在电视机、电话、闹钟等家用电器的控制和通信。相当于在90年代初Sun公司就有智能化家电的idea了(如今智能化家电已经走进了千家万户),但是当时智能化家电的市场需求并不高,于是Sun公司放弃了这项计划。
- 1995年5月23日,Java发布。Sun公司由于看到了Oak在互联网应用上的前景,于是改造了Oak,并在95年5月以Java的名称发布。Java是印度尼西亚爪哇岛的英文名,因盛产咖啡闻名于世。关于Java语言命名的由来,可以读一下知乎的一篇文章:Java命名的由来。Java语言中的许多名称其实都和咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)、ObjectBeans(对象豆)等,Java的logo也是一杯冒着热气的咖啡。
- 1996年1月,JDK 1.0诞生。
- 1996年6月,Sun公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)、和微型版(J2ME)。
- 2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0。也就是我们常说的JDK 1.5 或者JDK 5.0。
- 2005年6月,JavaOne大会召开,Sun公司公开Java SE 6。此时,Java的各种版本已经更名,J2EE更改为Java EE,J2SE更改为Java SE、J2ME更改为Java ME。
- 2009年,Sun公司被Oracle公司收购,结束长达27余年的公司历史。交易价格74亿美元。
- 2011年7月28日,Oracle公司发布Java SE 7,我们经常说的JDK 7、JDK 7.0或者JDK 1.7。
- 2014年3月18日,Oracle公司发布Java SE 8,我们经常说的JDK 8、JDK 8.0或者JDK 1.8。这个版本是继JDK 5.0之后,变化最大的版本,也应该能成为一个里程碑了。
- 2017年,Oracle公司发布Java SE 9。
- 2018年,Oracle公司发布Java SE 10和Java SE 11。在Java SE 9以后,Oracle命名会采用年份加月份,比如Java SE 10,也称为JDK 18.3,表示是2018年3月份发布的。Oracle曾表示每6个月更新一个版本。
- 2019年,Oracle公司发布Java SE 12和Java SE 13。
- 2020年,Oracle公司发布Java SE 14。Java SE 15也将在2020年9月发布。
- 2021年,预计发布Java SE16和Java SE17。
但是版本并非越新越好,目前用的最多的还是Java SE 8。版本名称平时口头说的并不同意,但应该知道别人是说的哪个版本。
A:你们公司JDK用的什么版本的?
B:我们用的1.8。
A:你们用的太老了,我们用的7.0。
B:。。。
Java语言的应用
- 企业级应用
主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电信、交通、电子商务等。 - 安卓平台应用
Android平台的应用程序使用Java语言编写。 - 大数据平台开发
各类框架如Hadoop、spark、storm、flink等,以及各种中间件如flume、kafka、sqoop等大多是用Java语言编写,提供Java语言API供编程。 - 移动领域应用
主要体现在各种小型设备上的应用,如消费和嵌入式领域,包括手机,pda,机顶盒、汽车通信等设备上软件的开发。
Java语言的特点
Java语言实际上从C和C++语言继承了许多成分,甚至可以把Java看成是类C语言发展和衍生的产物。比如Java语言的变量声明、操作符形式、参数传递、流程控制等方面和C和C++语言完全相同。同时,Java是一个纯粹的面向对象的程序设计语言,它继承了C++面向对象思想的核心。
Java舍弃了C语言中复杂而又容易出错的指针(以引用取代),舍弃了运算符重载,舍弃了多重继承(以接口取代)等特性。增加了垃圾回收机制用于回收不再被引用的对象所占据的内存空间。JDK 5又引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱。
Java语言的特点总结来说主要有以下三个
- 面向对象
面向对象的特点是:封装、继承和多态。我面试有被问到过,让去解释这三个概念,并且举一个生活中多态的例子。 - 健壮性
吸收了C/C++语言的优点,但去掉了影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制。 - 跨平台性
Write Once, Run Anywhere. 通过Java语言编写的应用程序在不同的系统平台上都可以运行。这是因为在需要运行Java的操作系统之上,先安装了一个Java虚拟机,由其负责Java程序的运行。当然,不同的操作系统所对应的JVM也是不同的。