初识JAVA

本文详细介绍了Java语言从诞生到发展的重要历程,包括其由C++发展而来,因跨平台需求而创立,以及在服务器程序、网站开发、嵌入式领域的广泛应用。Java与C/C++的对比中,强调了Java的平台无关性、内存管理自动化以及在不同领域的应用。此外,还探讨了Java在大数据处理技术中的角色。
摘要由CSDN通过智能技术生成


一、java语言诞生史

java祖师爷-高斯林:
在这里插入图片描述

在1991年时候,SUN公司猜想嵌入式系统将会在未来家电领域大显身手,于是SUN公司决定让詹姆斯·高斯林(James Gosling)、迈克·谢里丹(Mike Sheridan)和帕特里克·诺顿(Patrick Naughton)于1991年6月启动了“Green计划”。准备开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这样我们可以把指令发给电冰箱、 电视机等家用电器,进而实现对它们进行控制,和它们进行信息交流。

这些电子产品有一个共同的特点:计算处理能力和内存都非常有限。所以要求:语言必须非常小且能够生成非常紧凑的代码,这样才能在这样的环境中执行。

另外,由于不同的厂商选择不同的CPU,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的,最初这个语言命名为“Green”,类似于绿色软件的意思。

开始, 准备采用C++,但C++太复杂, 安全性差, 最后基于C++开发一种新的语言Oak,Oak是一种用于网络的精巧而安全的语言, (Gosling把这种语言称为"Oak",橡树的意思,起名由来1:Gosling向窗外望去,看见一棵老橡树,于是决定叫Oak)Sun公司投标一个交互式电视项目, 但结果被SGI打败。可怜的Oak几乎无家可归, 恰巧这时Mark Ardreesen开发的Mosaic和Netscape启发了Oak项目组的成员。他们用一种全新的语言编写了一款浏览器,得到了Sun公司首席执行官Scott McNealy的支持。

在一次几位该成员组的会员在一家名为“爪蛙”咖啡的店里正在讨论给这个新的语言取什么名字时,有一个人灵机一动说:“就叫 Java 怎样”, 得到了其他人的赞赏,。

于是, Java语言就诞生了。

JAVA语言发展历程:

  1. 1995年5月23日,Java语言正式诞生。
  2. 1996年1月,第一个JDK-JDK1.0诞生。(一个小型的专注于网页的版本,可用于所有浏览器)
  3. 新特性及更新修改:Sun Classic VM(虚拟机)、Applet(java小应用程序)、AWT(java图形设计)
  4. 1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术。
  5. 1996年9月,约8.3万个网页应用了Java技术来制作。
  6. 1997年2月18日,JDK1.1发布。

JDK1.1新特性及更新修改:

  • JAR(jar包)
  • JDBC(Java DataBase Connectivity)(连接数据库)
  • JavaBeans(java规范)
  • RMI(远程调用)
  • Inner Class(内部类)
  • Reflection(反射)

1997年4月2日,JavaOne会议召开,参与者超过万人,创造当时全球同类会议规模之纪录。

1997年9月,JavaDeveloperConnection社区成员超过十万。

1998年2月,JDK1.1被下载超过2,000,000次。

1998年12月8,Java的企业平台Java EE正式发布。

1999年6月,Sun公司发布Java的三大版本:标准版(Java SE)、企业版(Java EE)、微型版(Java ME)。

2000年5月8日,JDK1.3发布。

JDK1.3 新特性及更新修改:

  • 数学运算
  • Timer API(时间)
  • Java Sound API(声音)
  • CORBA IIOP实现RMI的通信协议
  • Java 2D新特性
  • jar文件索引

2000年5月29日,JDK1.4发布。

2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机。

2001年9月24日,Java EE 1.3发布。

2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升。

2004年9月30日,J2SE1.5发布,Java语言发展史上的又一里程碑事件。为了表示这个版本的重要性,Java SE 1.5正式更名为Java SE 5.0。

Java SE 5.0 新特性及更新修改:

  • 自动装箱拆箱
  • 泛型
  • 元数据
  • Introspector(内省)
  • enum(枚举)
  • 静态引入
  • 可变长参数(Varargs)
  • foreach(高级循环)
  • JMM(内存模型)
  • concurrent(并发包)

2006年12月,Sun公司发布了JDK1.6(也被称为Java SE 6)。一直以来,Sun公司维持着大约2年发布一次JDK新版本的习惯。

2009年4月20日,Oracle宣布将以每股9.5美元的价格收购Sun,该交易的总价值约为74亿美元。但Oracle通过收购Sun公司获得了两项软件资产:Java和Solaris。2007年11月,Java语言作为服务器端编程语言,已经取得了极大地成功;而Android平台的流行,则让Java语言获得了在客户端程序上大展拳脚的机会。

2011年7月28日,Oracle公司发布了Java SE 7,这次版本升级经过了将近5年时间。Java SE 7也是Oracle发布的第一个Java版本,引入了二进制整数、支持字符串的switch语句、多异常捕捉、自动关闭资源的try语句等新特性。

2014年3月18日,Oracle公司发布了Java SE 8,这次版本升级为Java带来了全新的Lambda表达式。除此之外,Java 8还增加了大量新特性,这些新特性使得Java变得更加强大。目前Java的版本已经更新了好几个版本,但目前市场主流还是使用的JDK8。

JDK8 新特性及更新修改: (我们经常使用的版本)

  • Lambda表达式
  • 函数式接口
  • 方法引用和构造器调用
  • Stream API
  • 接口中的默认方法和静态方法
  • 新时间日期API

二主要应用领域与优势

1.应用领域

在这里插入图片描述
java自诞生以来,随着不断的完善和发展,拥有了良好的生态,应用范围也越来越广:

  1. 服务器程序:Java在金融服务业的应用非常广泛,许多跨国投资银行例如:GoldmanSachs(高盛投资),Citigroup(花旗集团),Barclays(巴克莱银行)以及其他银行,都用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。大多数情况下,Java被用在服务器端开发,但多数没有任何前端,它们通常是从一个服务器(上一级)接收数据,处理后发向另一个处理系统(下一级处理)
  2. 网站开发:很多的大型知名网站(如网易、淘宝等)就是用JAVA开发的,目前很多大型项目都是用Java开发,例如医疗救护,保险,教育,国防以及其他的不同部门网站都是以Java为基础来开发的。
  3. 嵌入式领域:Java在嵌入式领域发展空间很大。在这个平台上,你只需130KB就能够使用Java技术(在智能卡或者传感器上)
  4. 大数据技术:Hadoop以及其他大数据处理技术都是用Java或者其他,例如Apache的基于Java的HBase和Accumulo以及ElasticSearchas。

2.JAVA与C\C++优劣

  1. c是面向过程的语言。c++和Java都是面向对象的。在c中没有类或者对象的概念。
  2. java运行在虚拟机上,号称与平台无关。也就是你开发的java程序无论是unix,linux还是windows都可以正常运行。但是实际上这是一个良好的愿望,实际跨平台时还会有各种各样的问题。c和c++都是直接编译成可执行文件,是否能跨平台主要看你用到的编译器特性是否有多平台支持。
  3. 因为c和c++是直接编译成可执行文件,所以运行效率要比java高。至于c和c++哪个更快,两种语言的拥趸已经吵了很多年。
  4. java因为是运行在虚拟机上,不需要考虑内存管理和垃圾回收机制。也是就你可以声明一个对象而不用考虑释放他,虚拟机帮你做这事情。而c和c++语言本身没有多少内存管理的概念,写c和c++程序如果用到指针就一定要考虑内存申请和释放。内存泄漏是c和c++最头疼的问题。
  5. 代码重用:java中有一个根类object,所有的类都是其子类,通过这种方式将容器和算法分离,实现一种操作作用于多种对象,提高代码重用。c++中没有总根对象,但是c++提供了另一个更强大的功能“模板”,同样高效地实现了一种操作作用于多种对象,提供了高效的代码重用方法。
  6. 数据结构:java内建了丰富的数据结构:列表,集合等等(很久没用java了,有些记不太清)。而c++则用“模板”同样提供了各种数据结构(容器)。
  7. c语言在一些比较低层,和硬件打交道的地方用得比较多。另外很多开源软件由于unix/linux开发习惯也大多采用c来开发。Java是现在最流行的开发语言,c++比起java稍稍不那么流行一些,但是功能很强大。

总结

以上只是分析了两种语言的一小部分,通过分析java与c++可以知道一个结论。语言就像一个工具,根据合适的问题选择合适工具(不可能使用钳子去炒菜一样),只用在合适的领域使用合适语言。不必纠结我要学习那种,反正到工作时发现你两种语言都要学,还要学习一些其他的语言。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值