资讯专栏INFORMATION COLUMN

【精致Java教程】01:认识Java

keithxiaoy / 637人阅读

摘要:小组最开始由两名程序员和,一名工程师三人组成,后续有人员扩充。其中是最具代表性的人物,如今被称为语言之父。后于年月日对外公布这门编程语言,标志着的诞生。官方宣称全世界有万开发者。数据显示目前处于榜首。

欢迎你来到Java的世界,作为Java的第一篇文章不可免俗的要做一次介绍,这些东西往往比较枯燥所以我尽可能写的有故事趣味一点。对于初学者历史或者特性的东西浏览一遍有所了解即可,即使不知所云也没关系,更不需要记。
本文从四个方面介绍一下Java:

Java的发展简史

Java的特性

Java能做什么

Java目前的占有率

Java的发展简史

1991年Sun公司认为用嵌入式系统来控制消费类电子产品(例如机顶盒、电视机、收音机、微波炉、烤面包机等)在未来很有市场。于是Sun公司成立了一个名为“Green”的小组来开发一套新的控制系统。这个系统用什么语言来做呢?他们一开始考虑过用C++,但是C++太复杂了且API不健全。而且由于当时的各类设备的CPU和操作系统不同,内存也有限,要实现用于这些设备的控制系统,需要一种代码低消耗且平台无关的编程语言,所以C++并不能胜任。最后Green决定开发一门新的编程语言。Green小组最开始由两名程序员Patrick Naughton和James Gosling,一名工程师Mike Sheridan三人组成,后续有人员扩充。其中James Gosling是最具代表性的人物,如今被称为“Java语言之父”。

这门新的编程语言的风格很像C++,因为本身就是基于C++开发的新语言。Gosling把这种语言取名为“Oak”,灵感传说是他喜欢自己办公室外的橡树。但是Sun公司的人后来发现“Oak”已经是另一种计算机语言的名字,没办法注册商标。所以他们又想了另外几个名字,经过投票最后决定改名为“Java”。因为Java是印度尼西亚一个岛屿爪哇岛的名字,且该岛屿盛产的咖啡也叫Java。所以Java的logo是一杯热气腾腾的咖啡。后于1995年5月23日对外公布这门编程语言,标志着Java的诞生。

另外Java的吉祥物叫“Duke”,每年的Java开发者大会大家都会穿着印有Duke的文化衫。

1992年的时候Green小组变成了一家Sun公司的全资子公司,名为“FirstPerson”。
同年FirstPerson发布了他们的第一个产品叫“*7”,它是一个基于SPARC的手持无线PDA。

可惜Sun公司和其它消费品公司并不看好这个产品。另外FirstPerson从1993年到1994年花了一年半的时间都没能推销出Java这项技术。
与此同时的万维网正在逐渐壮大,而浏览器正是推动Web发展的关键技术。Java开发者们很快意识到Java具有客户端/服务器模型中非常关键的中立、实时、可靠、安全等特性,于是他们决定开发一款浏览器。
他们开发的浏览器一开始叫WebRunner后来改名为HotJava。HotJava是完全由Java编写的,这个浏览器最大的亮点是可以执行网页中的内嵌代码,这个技术称为Applet。而当时其它的浏览器只能显示静态的内容。
Sun公司在1995年5月23日发布了HotJava(和Java语言同时发布),在当时引起了不小的关注并吸引来了许多新的Java开发者。但是HotJava除了Applet其它表现并不佳,且当时人们习惯使用浏览器是网景的Netscape Navigator和微软的Internet Explorer。后来Sun为了推广Java Applet推出了可以在其他浏览器实现Applet的浏览器插件。既然其他浏览器都能用Applet那HotJava就更没人用了。HotJava的最后一个版本是3.0版本,在网上搜索还能下载呢。我就好奇在Windows XP系统上装了结果是下图这个样子。

1996年年初,Sun发布了Java的第一个正式版本,也就是JDK1.0(1995年只是发布了Java这门语言)。从此版本更新到现在已经是Java8了。下图是Java的版本更新历程和每个版本比较有代表性的新特性。读者如果是新人对这些新特性感到不知所云完全没有关系,这篇文章只需要你浏览,当你学了相应语法也可以回过头来看看会更有感觉。

到此关于Java的历史基本上讲完了,只剩下一个挺重要的事件。那就是2009年4月20日Oracle以74亿美元收购了Sun公司所有股份。也就是说Java平台现在属于Oracle。

Java的特性

在说Java特性的时候,很多资料会只说优点不说缺点,甚至缺点说成优点。我不会这么干,Java是一个很成熟且实用的工具,但也不是十全十美的。关于Java特性我分为优点和缺点和其它三部分。具体如下:

注:如果你是一名初学者,这些特性你应该看不懂。没有关系你非常正常,你先浏览一遍,等你看完整套教程你再回过头来看看。

优点:

面向对象
Java是一门面向对象的语言。面向对象经过这么多年的实践已经证明是当下最好的程序设计,更符合人们的思维习惯。

跨平台
跨平台指的是“一次编译,到处运行”,也就是程序员只需要写一份代码编译一次,就可以交给各个平台解释执行。跨平台可以说是Java的招牌特色。

自动管理内存
Java因为多了虚拟机这一层不仅实现了“一次编译,到处运行”这一美好特性,而且还提供了用于自动管理内存的垃圾回收机制(Garbage Collection,简称GC),这对于Java程序员来说是是一种释放。

安全性
在手动管理内存的语言例如C++中是很容易出现内存泄露问题的,但是Java的垃圾收集机制避免了这一安全问题。而且Java程序无法破坏分配给自己之外的其它系统内存,这也极大的提高了宿主系统的安全性。除此之外Java还有签名机制可以对诸多权限进行控制,例如文件读写。

健壮性
Java的编译器发展至今有非常完善的代码检测能力,能在编译期间排除绝大部分代码错误。

多线程
多线程不仅可以更有效的利用系统资源,而且可以实现程序监听,实时交互等功能。

网络能力
Java支持TCP/IP协议,能够通过网络上传与接收数据。

动态性
Java并不是一门动态语言,因为Java不能在程序运行过程中动态的修改程序结构或者变量的数据类型。但是提供了反射机制实现了在程序运行过程中动态获取类的信息。

开源
Java语言是开源的,可以下载源代码查看。

丰富的代码库
这个其实并不是Java语言本身的特性,而是因为Java用户太多,这么多年来留下来太多的可用代码。除了官方类库还有大量了第三方类库可以使用。这使得大部分功能都能在网络上找到解决方案,这就使得Java程序员能够快速实现某一功能。

缺点:

性能较差
Java因为虚拟机拥有诸多优势,但也因为要走虚拟机这一层相比其它编程语言性能差些。

语法啰嗦
Java的语法是特别啰嗦的,例如需要导入一堆包。再例如打印一句Hello World!是这样:

System.out.println("Hello World!");

而在Groovy里只要这样:

println "Hello Groovy"

其它:

语法严谨
语法严谨包括两个方面:

数据类型明确。一种数据类型占多少字节,能表示什么是明确的。并且声明之后也不能更换数据类型。

语法明确。例如大小写敏感,一个语句的“;”不能省略,各种括号不能省略,访问权限必须写清楚等等。

注:语法严谨有的人喜欢觉得这样大家代码统一,有的人不喜欢觉得不够自由。所以 我只把这点当作一个特点不作为Java的优点或者缺点。

Java是解释型语言
Java从源代码.java到字节码.class是一个编译的过程,但是JVM运行程序是一个解释的过程。所以Java是一门解释型的语言。

Java能做什么

在前面的Java版本更新历程的配图中指出Java1.2开始把Java分为J2SE(Java 2 Standard Edition,Java标准版)、J2ME(Java 2 Micro Edition,Java微型版本)和J2EE(Java 2 Enterprise Edition,Java企业版)三个体系。
JavaSE就是指Java的基础语法和一些Java平台提供的基础类库。而后面两者可以看作是前者的基础上添加一些针对某个领域的类库和框架。并不是说有好几个语法版本的Java。开发时除了安装标准版的Java后两者还需要其它的扩展工具。
JavaME是指做一些嵌入式设备(例如PDA、机顶盒、家用电器等)或者手机上的软件。这里的手机是指以前那些功能机并不是现在的Android手机。如下图。

而JavaEE指的是做一些企业级的应用,例如大公司里的ERP系统或者网站。其中网站并不是你看到的网页的样子,而是指你看不到的后台逻辑。例如京东和天猫就是Java做的。

Java发展至今这些体系并没有特别明确的区分,就是Java基础语法然后特定场合选择一些合适的工具嘛。而如果问学了Java一般做什么?最热门的有两个,其一就是上面所说的网站,另外就是Android。

Java目前的占有率

到现在Java已经20岁了,已经发展为最受欢迎的编程语言之一。官方宣称全世界有900万Java开发者。可见Java军团有多么庞大。
热度可以参考TIOBE在2016年3月更新的编程语言排行榜和趋势图。数据显示Java目前处于榜首。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65709.html

相关文章

  • 精致Java教程】04:第一个Java程序,HelloWorld!

    摘要:配置好开发环境之后,我们来写第一个程序。注原谅我这里只贴了张截图,因为我觉得第一个程序你最好自己敲而不是复制粘贴。运行程序现在命令行窗口输出了一句,如下图好了,恭喜你,你已经是一名程序员了,太腻害了。注是编译器,是运行器。 配置好开发环境之后,我们来写第一个Java程序。 Step1:敲代码 可以在任意目录,为了方便管理我在D盘下新建了一个Source文件夹专门放代码,又在Source...

    Kylin_Mountain 评论0 收藏0
  • 精致Java教程】02:Java的跨平台原理

    摘要:它的实现原理是在系统层面上又增加了一层虚拟机,简称,且为每个平台都定制了对应的虚拟机。然后程序是在虚拟机上跑的,因此平台无关。 Java的一大特色就是write once, run anywhere即一次编译,到处运行。就是说你不用专门为每个平台写一份代码,你写的Java程序在任何平台都能跑起来。 它的实现原理是在系统层面上又增加了一层虚拟机(Java Virtual Machine,...

    Genng 评论0 收藏0
  • 精致Java教程】03:安装JDK和配置Java环境变量

    摘要:运行环境,它是程序运行的所必需的环境集合。安装下一步下一步即可,要记得安装路径。配置环境变量安装完以后需要对系统的环境变量进行配置才能开发。之所以不能运行是因为装类之后还得配置环境变量。 在了解了Java历史、特性、作用和跨平台原理之后,我们可以开始为Java开发做准备工作了,只是在此之前我们还需要了解Java的两大基础概念JDK(Java Development kit)和JRE(J...

    CoyPan 评论0 收藏0
  • 什么是程序?

    摘要:伟大的语言希望到目前为止你还没有晕,到这里我们知道了,不管我们用的是什么的也好最终都逃不出等语言除外,不直接执行之类的解释型语言程序,可以直接执行的是解释器代码,解释器最终来执行等程序,这就是解释型语言效率不如编译型语言效率高的原因。 虽然在这里我们主要关注的是操作系统,但毕竟操作系统的目的就是能更好的运行用户程序,而且该教程主要是站在程序员的角度来讲解操作系统的,作为程序员是绕不开程...

    junfeng777 评论0 收藏0
  • 什么是程序?

    摘要:伟大的语言希望到目前为止你还没有晕,到这里我们知道了,不管我们用的是什么的也好最终都逃不出等语言除外,不直接执行之类的解释型语言程序,可以直接执行的是解释器代码,解释器最终来执行等程序,这就是解释型语言效率不如编译型语言效率高的原因。 虽然在这里我们主要关注的是操作系统,但毕竟操作系统的目的就是能更好的运行用户程序,而且该教程主要是站在程序员的角度来讲解操作系统的,作为程序员是绕不开程...

    jokester 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<