Java语言的发展史,戏剧性的诞生!!
Java语言的诞生具有一定的戏剧性,他并不是经过精心策划、制作,最后生产的划时代产品。从某种角度而言,Java语言的诞生完全是一种“误会”。
在20世纪90年代,硬件领域出现啦单片机计算机系统,这种低廉的系统一出现就立即引起啦自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品如 (电视机顶盒、面包烤箱、移动电话等)。
Sun公司预料嵌入式系统将会在未来家电领域大显身手,于是1990年末,Sun公司成立了一个由“James Gosling"领导的 "Greem"的计划,准备为下一代智能家电编写一个控制系统。
该团队最初考虑使用C++语言来编写系统,当时Sun公司首席科学家 Bil Joy,发现C++的API在某些方面存在很大问题。并且团队考虑的是嵌入式平台,可用的系统资源极其有限。
使用C++开发过于复杂,并且C++缺少垃圾回收系统、移植性、分布式、多线程等功能。
于是首席科学家 “Bill Joy”根据有限的资金,决定在C++语言的基础上拓展开发出一种编程语言,随后“Gosling”在试图通过修改和扩展C++的功能来满足这个需求。C++语言对于嵌入式平台还是过于复杂,后来它放弃啦。
“Gosling”他决定创造一种全新的语言:Oak。
Java语言的发展史,被遗弃在角落的语言!!
在开发Oak语言时,因为尚且不存在运行字节码的硬件平台,所以为了在开发时可以对这种语言进行实验研究,他们就在已有的硬件和软件平台基础上,按照自己所指定的规范,用软件建设了一个运行平台,整个系统除了比C++更加简单之外,没有什么大的区别。
时间来到啦1992年的夏天,Gosling的计划已经完成啦新平台的大部分功能,包括Green操作系统、Oak的程序设计语言、类库等。
当Oak语言开发成功后,研究者们向硬件生产商进行演示了Green操作系统、Oak的程序设计语言、类库和其硬件,以说服他们使用Oak语言生产硬件芯片。但是,硬件生产商并未对此产生极大的热情。因为他们认为,在所有人对Oak语言还一无所知的情况下,就生产硬件产品的风险实在太大。
并在同年11月,Green计划被转化成啦“FirstPerson有限公司”,一个Sun公司的全资子公司。
“FirstPerson”团队是一个致力创建一种高度互动的设备。在当时华纳发布了一个关于电视机顶盒的征求提议书时,“FirstPerson”团队改变了他们的目标,作为对征求意见书的响应,提出了一个机顶盒平台的建议。
但有线电视业界觉得“FirstPerson”的平台给与用户过多的控制权,因此“FirstPerson”的投标败给啦“SGI”。同时,与“3DO”公司的另一笔关于机顶盒的交易也没有成功。
此时,可怜的 Green 项目几乎接近夭折,Green项目组的一半成员也被调到啦其他项目组。至此Oak语言因为缺乏硬件及平台的支持而无法进入市场,从而被搁置了下来。
Java语言的发展史, Java的由来
1994年夏天,随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变。互联网和浏览器的出现不仅给广大互联网的用户带来了福音,同时也给Oak语言带来了新的生机。
Gosling立即意识到,这是一个机会。于是在6至7月酷暑环境下,在经历了一场历时三天的讨论之后,团队决定再一次改变了努力的目标,对Oak进行了小规模的改造,这次他们决定将该技术应用于万维网。
时间来到啦1994年秋天,Gosling 团队完成啦第一个Java语言的网页浏览器:“WebRunner”。并且Sun公司实验室主任Bert Sutherland 和技术总监 Eric Schmidt 观看了网页浏览器的演示,对该浏览器的效果给与了高度评价。并得到了Sun公司首席执行官Scott McNealy的 支持, 因此Java开始进军Internet。
在当时 Oak 这个商标已被别人注册,有一天,Gosling团队正在讨论给新语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇咖啡),有一个人灵机一动说就叫Java怎样, 这个名字得到了在场所有人的赞赏。Java也正式被命名在这门语言上。
1995年年初 Sun 公司发布了Java语言,并直接把Java放到互联网上,免费给大家使用。甚至连源代码也不保密,在网络上完全开源公开。
几个月后,让公司所有人大吃一惊的事发生啦!!
Java语言的发展史, Java的崛起
几个月的时间Java成为啦互联网上最热门的宝贝。在当时竟然有10万多人次访问了Sun公司的网页,下载了Java语言。随后的时间,互联网上逐渐出现了数不清的Java小程序(也就Applet),演示着各种小动画、小游戏等。Java也在此时正式进入大众的视野。
Java为什么会在短短时间内,收到众人的追捧那?
其实在Java语言出现之前,互联网的网页实质上就像一张纸,不会有任何动态的内容。
在Java语言发布之后,浏览器的功能被扩大了,Java程序可以直接在浏览器里运行,可以直接与远程服务器交互:用Java语言编程,可以在互联网上像传送电子邮件一样方便地传送程序文件。
Java跌宕的崛起,终成就啦这门伟大的语言。
1995年,Sun虽然推出了Java,但这只是一种语言不能开发复杂的应用程序,必须要有一个强大的开发类库。
1996年年初,Sun公司,发布了 JDK1.0 这个版本包括两部分:运行环境(即JRE)和开发环境(即JDK)。运行环境包括核心API、集成API、用户界面API、发布技术、Java虚拟机(JVM)5个部分。
1997年,Sun公司发布了JDK1.1,增加了 JIT(即时编译)编译器。
1998年,Sun发布了Java历史上最重要的JDK版本:JDK1.2,伴随着JDK1.2一同发布的还有JSP/Servlet、EJB等规范,并将Java分成J2EE、J2SE和J2ME三个版本。
2002年,Sun发布了JDK历史上最成熟的版本:JDK1.4成为发展最快的一个JDK版本。JDK1.4已经可以使用Java实现大多数的应用了。
在此期间,Java语言在企业应用领域大放异彩,涌现出大量基于java语言的开源框架 :Struts、WebWork、Hibernate、Spring等。
大量企业应用服务器也开始涌现:WebLogic、WebSphere、JBoss等,这些都标志着Java语言进入了飞速发展时期。
2004年,Sun发布了万众期待的JDK1.5,同时,Sun将JDK1.5改名为Java SE5.0,J2EE、J2ME也相应地改名为Java EE和Java ME。
2006年,Sun公司发布了JDK1.6,并一直保持大约2年更新的版本的习惯;
但在2009年4月20日,Oracle宣布将收购Sun公司。
Sun公司倒下了~~
不过Java的大旗依然猎猎作响~~~
并延续至今,在互联网、企业应用、移动设备、大数据的位置上稳固而又强大。
Java是一门强大的语言,想要学习并对这门语言感兴趣的同学,在这里推荐几套Java基础入门的教程为大家推荐:
1.高淇Java300集(强烈推荐)
2.JavaSE基础全套-从零开始进阶之大神
3.Java全套课程-基础必备课程
4.Java常用类基础实战
5.Java基础入门必备数学知识【数据结构与算法】
6.Java面向对象编程_OOP基础深入讲解
7.GOF23种设计模式-23中设计模式详解课程
Java入门到精通,超全学习线路文章,小编整理很长时间有需要的话,点开看一下:
内容有:学习线路、视频推荐、学习网址、书籍推荐等
Dimple:Java学习线路-巨制 超全完整版 超全 超全 超全
Java的优点及特性:
Java摒弃了C、C++中的容易引发错误和难以理解的指针,结构,以及内存管理等;
Java提供了丰富的类库,很方便开发程序;
Java是完全面向对象的语言,支持 继承,重载,多态等面向对象的特性;
C++是面向对象和面向过程的混合语言, C是纯面向过程的语言;
Java是一种强类型的语言,比C/C++检查还要严格,Java区分大小写字母;
Java提供了自动垃圾回收机制gc,有效避免了C、C++的内存泄漏问题;
Java禁止非法访问内存,因为Java没有指针,内存的申请和释放;
跨平台,java的源代码编译成结构中立的中间格式,这种格式与机器无关,只要在安装有
JVM(java虚拟机)的电脑上,都能运行这种与机器无关的中间文件;java一次编译,到处运行;
Java11个特性详情:
1.简单性 Java语法是C++语法的一个“纯净版本”。这里没有头文件,指针运算(甚至指针语法),结构,联合,操作符重载,虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。
2.面向对象 什么是面向对象?用木匠打一个比方,一个“面向对象”的木匠始终关注的是所制作的椅子,第二位才是所使用的工具;而一个“非面向对象”木匠首先考虑的是所使用的工具。 在Java的世界里,一切皆对象。 Java的面向对象特性与C++旗鼓相当,与C++不同的点在于多重继承。在Java中,取而代之的是更简单的接口概念。而且与C++想比,Java提供了更丰富非运行时自省功能。
3.分布式(微服务) Java有丰富的例程库,用于处理HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。
4.健壮性 Java与C++最大的不同在于Java使用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。
5.安全性 Java适用于网络/分式式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒,防篡改的系统。 从一开始,Java就设计出能够防范常见的各种攻击: (1)运行时堆栈溢出。蠕虫和病毒常用的攻击手段。(2)破坏自己进程空间之外的内存。(3)未经授权读写文件。
6.体系结构中立 编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译后的代码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。
7.可移植性 与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。例如,Java中的int永远是32位的整数,二在C/C++中,int可能是16位整数,32位整数,也可能是编译器提供商指定的其他大小。在Java中,数据类型具有固定的大小,这消除了代码代码移植时令人头疼的主要问题。
8.解释型 Java解释器可以再任何移植了解解释器的机器上执行Java字节码。由于链接是一个增量式且轻量级的过程。所以开发过程也变得更加快捷,更加具有探索性。
9.高能性 尽管对解释后的字节码性能已经比较满意,但是在某些场合下可能需要更加高效的性能。字节码可以(在运行时刻)动态的翻译成对应运行这个应用的特定CPU的机器码。
10.多线程 Java在当时很超前,他是第一个支持并发程序设计的主流语言,多线程可以带来更好的交互影响和实时行为。并发程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。
11.动态性 Java与C/C++相比更具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。在Java中找出运行时类型信息十分简单。
至此:完!!
感谢阅读~