百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

JAVA入门(1) 什么是JAVA_java是指什么意思

yund56 2025-02-25 01:02 16 浏览

摘要

通过本章的学习,读者能够了解Java出现的历史因素,知道Java语言的优缺点,明白Java语言适合应用于什么领域,对Java语言有一个总体的认识。

本章目标:

通过本章的学习,读者能够了解Java出现的历史因素,知道Java语言的优缺点,明白Java语言适合应用于什么领域,对Java语言有一个总体的认识。

1.1 JAVA发展历程

现在随便打开一本计算机杂志,都可以看到Java的身影,甚至连《纽约时报》、《商业周刊》等这些非计算机类报刊杂志都时而会刊登关于Java的消息。一向“目中无人”的微软公司也不得不对Java这一竞争对手Sun公司的力作提供支持。下面我们就一起来探究一下Java的发展历史。

Java的诞生需追溯到1991年。当时,在Sun公司内,有一个称为Green的项目,这个项目的工程师受命设计一种小型的计算机语言,用于机顶盒、家电控制芯片等消费类设备。由于这些设备功能有限、内存较小,所以这种语言必须尽可能地小,而且应能生成非常紧凑的代码。而且最重要的一点是,这些设备所采用的处理芯片多种多样,要使这个语言有强大的生命力,就绝不能够受限于任何一种体系结构。

为了实现这一目标,项目组准备尝试一种古老的模型:设计出一种“可移植”的语言。在执行前,生成一个“中间码”,在任何一种机器上安装了特定的解释器,就可以运行这个“中间码”。这样“中间码”一定会非常小,而解释器也不大,就可以达到这个目标。

这个由James Gosling和Patrick Naughton领导的项目组中,大部分员工都是UNIX背景,熟悉C++语言,使得这个新语言走向了“面向对象”的道路。这个语言原来的名字是“Oak”(James Gosling办公室窗外的橡树名),但后来由于“Oak”这一名字已被占用,所以在Sun公司高层的建议下,选用了“Java”一种咖啡的名字做为新语言的名字,所以现在说到Java语言,大家都会想到那杯热气腾腾的咖啡!

也许,Sun公司希望Java语言能够象咖啡一样被人们接受、喜爱吧!

好事多磨!这句中国的老话,也应验在了这个远在重洋的项目组。1992年,Green项目组发布了第一款应用Java语言的产品—一个很智能的远程控件。但它并未被Sun公司和消费类家电公司所接受。接着Green项目组又开始了许多其它方面的尝试,均惨遭失败,不得不在1994年解散。

正在这个时候,Internet 上的WWW服务越来越普遍,人们需要一个好用的浏览器,以便更好地阅读WEB页面。这时Green项目组的旧部意识到可以使用Java语言来写一个浏览器。这个最终发展成目前的HotJava浏览器,最初是由Patrick Naughton和Jonathan Payne编写的,它是使用Java语言写成的。他们在编写HotJava时,还考虑到提供小应用程序(Applet)的能力,所以在浏览器中加入了解释Java语言“中间码”的功能。这个设计促进了Java语言的发展。

HotJava这个试验品在1995年5月召开的SunWorld大会上首次亮相,从至引发了遍及全球、至今未衰的Java热。

1995年秋,Netscape决定支持让其浏览器支持Java,并在1996年初发布了支持Java的版本。这意味着Java语言开始大流行。后来,IBM、Symantec、Inprise等许多著名IT公司都注册了Java使用许可证。而且视Sun公司为敌的微软公司也在IE中提供了对Java能力,并在Windows中提供了Java虚拟机。(不过,据Sun公司称,微软公司支持的Java语言不是纯正的Java语言)。

Java语言的初露锋芒,让Sun公司意识到它的价值,于是在1996年初发布了Java的第一个版本。几个月后,又发布了Java 1.02版。但这个版本的Java语言并不是十分完备,不适合用于正规的应用程序的开发。

1996年5月,在旧金山召开了JavaOne大会,在这次大会上,Sun公司为人们绘制了一个美好的蓝图。这个美好的蓝图,让大多数人怀疑要达到个目标需要好几年的时间。但仅过了一小段时间,Sun公司就发布了令人满意的Java 1.0版,它实现了绝大部分的目标。

在1998年召开的JavaOne大会上,Sun公司发布了Java 1.2版,这就是Java 2,它以功能全面的、具有高度扩展能力的新版本换掉了原来的GUI界面和图形工具包。朝着“一次编写,到处运行”的宏伟目标又前进了一大步。

1.2 JAVA的特点

1.2.1 Java语言的优点

Java语言是一种优秀的编程语言。它最大的优点就是与平台无关,在Windows 9x、Windows NT、Solaris、Linux、MacOS以及其它平台上,都可以使用相同的代码。“一次编写,到处运行”的特点,使其在互联网上广泛采用。

由于Java语言的设计者们十分熟悉C++语言,所以在设计时很好地借鉴了C++语言。可以说,Java语言是一种比C++语言“还面向对象”的一种编程语言。Java语言的语法结构与C++语言的语法结构十分相似,这使得C++程序员学习Java语言更加容易。

当然,如果仅仅是对C++改头换面,那么就不会有今天的Java热了。Java语言提供的一些有用的新特性,使得使用Java语言比C++语言更容易写出“无错代码”。

这些新特性包括:

1) 提供了对内存的自动管理,程序员无需在程序中进行分配、释放内存,那些可怕的内存分配错误不会再打扰你了;

2) 去除了C++语言中的令人费解、容易出错的“指针”,用其它方法来进行弥补;

3) 避免了赋值语句(如a = 3)与逻辑运算语句(如a = = 3)的混淆;

4) 取消了多重继承这一复杂的设施。

一些说明:

“多重继承”是“面向对象”的术语,我们将会在第2章中详细叙述。

这些优点正是Java热的背景,Java凭借其强大的移植能力、多线程处理和连网能力,风靡全球,现在已经逐渐成为手持设备、互联网、车内计算机的一项标准。

1.2.2 Java语言的关键特性

Java语言有许许多多有效的特性,吸引着程序员们,最主要的有以下几个:

1.简洁有效

Java语言是一种相当简洁的“面向对象”程序设计语言。Java语言省略了C++语言中所有的难以理解、容易混淆的特性,例如头文件、指针、结构、单元、运算符重载、虚拟基础类等。它更加严谨、简洁。

注意:

有些熟悉Visual Basic语言的读者会觉得Java语言相对VB而言更复杂,的确使用Java编程是比使用VB更费力一些。但大家一定要知道VB是一种集成化开发工具,其凭借可视化工具成为开发GUI程序的神器,但其并不能算是一种语言。它的基础是Basic语言,这是一种最简单的语言,但其功能不如C、C++、Java这样完整。

Java语言采用了特殊的软件构造方法,可以在很小的机器上独立运行。只要40K就可以容下一个最基本的解释器,即使加上基本标准库和线程支持,也仅需再加上175K就够的。这也是Java语言的一个成功秘诀。

2.高可移植性

对于一个程序员而言,写出来的程序如果不需修改就能够同时在Windows、MacOS、UNIX等平台上运行,简直就是美梦成真的好事!而Java语言就让这个原本遥不可及的事离我们越来越近。使用Java语言编写的程序,只要做较少的修改,甚至有时根本不需修改就可以在不同平台上运行了。

举个例子,不同平台上对数据类型的大小有不同的规定。在有的平台上,整型(int)是用一个16位二进制数表示,而有的平台上则是使用一个32位二进制数表示的。C/C++语言并没有屏蔽掉这个由不同平台造成的不同。这样如果在一个使用16位二进制数表示整型的平台上开发的C语言源程序,要在一个使用32位二进制数表示整型的平台上运行,简直就是噩耗。

而在Java语言中,就屏蔽掉了这种由平台造成的不同。Java中的整型数是一定是由32位二进制表示的,Java虚拟机将这个差别消化了。当我们想将一个使用16位二进制数表示整型的平台上开发的Java语言源程序,移植到一个使用32位二进制数表示整型的平台上运行,就不用修改了。

Java语言具备这种高移植性是一种必然,因为它的设计理念就是“一次编写,到处运行”嘛。

3.“面向对象”

可以这么说,“面向对象”是软件工程学的一次革命,大大提升了人类的软件开发能力,是一个伟大的进步,是软件发展的一个重大的理程碑。

在过去的30年间,“面向对象”有了长足的发展,充分体现了其价值,到现在已经形成了“面向对象的系统分析”、“面向对象的系统设计”、“面向对象的程序设计”一个体系。所以做为一个现代编程语言,是不能够偏离这一方向的,Java语言也不例外。

注意:

Java语言被喻为比C++还“面向对象”的程序设计语言,不理解“面向对象”的思想就难以很好地运用Java语言,不熟悉这方面内容的读者,可以好好阅读本书的第二章。

4.解释型

大家还记得Basic语言吗?当我们使用Basic语言进行编程时,得先进入Basic语言环境,然后输入源程序,再运行它,Basic语言环境一句句地解释、运行,直接得出结果。这种语言就是解释型语言。

而象C/C++这样的语言就不是这样的了,我们先使用编辑软件或集成开发环境(IDE)编写源程序,然后对其进行编译,生成可执行文件。然后我们再通过操作系统执行这个可执行文件得到结果。这种语言就是编译型语言。

解释型语言效率低,速度慢;编译型语言效率高,速度快。

Java语言是一种解释型语言。对,没看错,它是一种解释型语言,也就是说,相对于C/C++语言来说,Java语言写出来的程序效率低,执行速度慢。但它正是通过在不同平台上运行Java解释器,对Java代码进行解释,来实现“一次编写,到处运行”的宏伟目标的。为了达到目标,牺牲效率还是值得的,再说,现在的计算机技术日新月异,运算速度也越来越快,用户不会感到太慢的。

一些提示:

其实Java语言并不是象Basic语言那样完全的解释性,它是一种解释型与编译 型的折中。使用Java语言编写程序,首先用编辑软件或集成开发环境(IDE)编写源程序,然后使用Java编译器进行一次伪编译,将其编译成为中间码(也称字节码)。然后再使用Java解释器进行解释。

5.适合分布式计算

Java语言具有强大的、易于使用的连网能力,非常适合开发分布式计算的程序。Java应用程序可以象访问本地文件系统那样通过URL访问远程对象。

使用Java语言编写Socket通信程序十分简单,使用它比使用任何其它语言都简单。而且它还十分适合于开发公共网关接口(CGI)脚本的开发,另外还可以使用Java小应用程序(Applet)、Java服务器页面(Java Server Page,简称JSP)、Servlet等等手段来构建更丰富的网页。

6.拥有较好的性能

正如前面说到,由于Java是一种解释型语言,所以它的执行效率相对就会慢一些,但由于Java语言采用了两种手段,使得其性能还是不错的。

1) Java语言源程序编写完成后,先使用Java伪编译器进行伪编译,将其转换为中间码(也称为字节码),再解释;

2) 提供了一种“准实时”(Just-in-Time,JIT)编译器,在需要更快的速度时,可以使用JIT编译器将字节码转换成机器码,然后将其缓冲下来,这样速度就会更快。

一些提示:

这种JIT编译器,顾名思义,Just-In-Time,仅在运行时才进行,将其编译成为平台相关的机器码(由于现在已经运行了,无需再考虑可移植性)。这样处理后,可以带来10倍甚至20倍的速度提升。而且这个技术正在不断地得到改正,今后JIT编译器将更加智能,能够监测出哪些代码经常执行,从而对其进行适当的优化,进一步加快执行速度。

7.健壮、防患于未然

Java语言在伪编译时,做了许多早期潜在问题的检查,并且在运行时来做了许多相应的检查,可以说是最严格的一种“编译器”。

它的这种“防患于未然”的手段将许多程序中的错误扼杀在摇蓝之中。经常有许多在其它语言中必须通过运行才会暴露出来的错误,在编译阶段就被发现了。

另外,在Java语言中还提供了许多保证程序稳定、健壮的特性,有效地减少了错误,这样使得Java应用程序更加健壮。

8.具有多线程处理能力

线程,是一种轻量级进程,是现代程序设计中必不可少的一种特性。多线程处理能力使得程序能够具有更好的交互性、实时性。

Java在多线程处理方面性能超群,具有让你惊喜的强大功能,而且在Java语言中进行多线程处理很简单。

注意:

要注意的是,各主流平台在线程的实现上千差万别,所以Java语言也暂时无法在

这方面做到“与平台无关”,所以Java为不同的操作系统各实现了一套多线程机制。

并且对于程序员来说,不同的机器上,调用多线程机制的代码还是相同的。

9.具有较高的安全性

由于Java语言在设计时,在安全性方面考虑很仔细,做了许多探究,使得Java语言成为目前最安全的一种程序设计语言。

尽管Sun公司曾经许诺过:“通过Java可以轻松构建出防病毒、防黑客的系统”,但“世界上没有绝对的安全”这一真理是不会因为某人的许诺而失灵验的。

就在JDK (Java Development Kit)1.0发布不久后,美国Princeton(普林斯顿)大学的一组安全专家发现了Java 1.0安全特性中的第一例错误。从此,Java安全方面的问题开始被关注。不过至今所发现的安全隐患都很微不足道,而且Java开发组还宣称,他们对系统安全方面的Bugs非常重视,会对这些被发现的进行立即修复。

而且由于Sun公司开放了Java解释器的细节,所以有助于通过各界力量,共同发现、防范、制止这些安全隐患。

10.是一种动态语言

Java是一种动态的语言,这表示在以下两个方面:

1) 在Java语言中,可以简单、直观地查询运行时信息;

2) 可以将新代码加入到一个正在运行的程序中去。

11.是一种中性结构

“Java编译器生成的是一种中性的对象文件格式。”也就是说,Java编译器通过伪编译后,将生成一个与任何计算机体系统无关的“中性”的字节码。

这种中性结构其实并不是Java首创的,在Java出现之前UCSD Pascal系统就已在一种商业产品中做到这一点,另外在UCSD Pascal之前还有这种方式的先例,那就是Niklaus Wirth实现的Pascal语言中就采用了这种降低一些性能,换取更好的可移植性和通用性的方法。

Java的这种字节码经过了许多精心的设计,使得其能够很好地兼容于当今大多数流行的计算机体系统,可以在任何机器上易于解释,易于动态翻译成为机器代码。

一些提示:

更详细的内容,可以参考Java语言作者编写的Java语言白皮书,你通过浏览
http://java.sun.com/doc/language_environment发现它。

1.3 关于JAVA的常见问题

1.Java与HTML有什么关系?

由于Java语言热是因为Internet、浏览器、WWW网而起的,所以在许多人心目中存在着一种误解,认为Java是HTML的一种扩展。

其实这种认识是错误的,HTML是一种对WWW页面进行描述的语言,而Java是一种编程语言,它们并不属于一个范畴。

的确使用Java语言能够使得WWW更具有动态的效果。

2.JavaScript与Java有什么关系?

JavaScript是一种可以嵌入到WWW页面中的一种脚本语言。它是由Netscape创造的,最初名叫LiveScript,由于语法与Java类似,后来改名为JavaScript,实际上是没有任何直接联系的。

3.Java程序都是在WEB页面上运行的吗?

诚然,Java程序是可以在WEB页面上运行,这种Java程序叫做Java小应用程序(Java Applet),它是一种小型的Java程序,专门在浏览上运行的。

还有一种Java程序,叫做Java应用程序(Java Application),它象用C/C++语言写出来的应用程序一样,是独立于浏览器运行的。

大家还记得吧,让Java名声大噪的HotJava就是一个浏览器嘛!

4.Java程序是解释型的,速度不快,适合用于开方什么方面的程序呢?

的确,Java语言是一种解释型语言,它的速度是要比纯编译型的C/C++语言要慢得多。所以用Java语言来开发那些需要使劲让CPU工作的程序(比如科学计算)当然是不理智的了,但是用Java语言开发那些与用户交互比较多的程序是十分适合的。这是因为,人的操作速度有限,Java还是能够跟上这个速度的。

值得一提的是,当使用了JIT编译器后,Java也就摇身一变成为了一个“纯编译型”的了,这时即使开发那些使劲让CPU工作的程序也不怕了。

5.Java语言容易学习吗?

Java语言学习起来比C++语言容易,但比Basic语言要复杂得多。如果你有C++语言的编程经验,那对学习Java语言就是轻车熟路了。如果没有也没有关系,只要记住以下两个忠告,我想学好Java语言指日可待:

1) 花些时间,真正理解“面向对象”;

2) 别怕困难,多多实践。

6.在网页Java小应用程序会带来安全性问题吗

的确有一些报告指出网页上的Java小应用程序有一些安全漏洞,但这些安全漏洞远比插入在网页上的ActiveX控件缓和得多。

在业界有这样的一个比喻:“受恶意的Java小应用程序攻击的概率与飞机失事相当;而受ActiveX控件的恶意攻击的概率则与徒步穿越繁忙的高速公路出事故的概率相当。”

虽然这个比喻也有说过头了些,但的确Java小应用程序的安全性漏洞并不是很大。

学习【Java】有困难需要视频资料可以加 胡凯QQ 563427813 一起学习交流,晚上有时间还可以参加永久免费分享的高清视频直播课程(免费分享哦)

相关推荐

分享|最美色彩!40张纯迷彩高清原图壁纸送给你

最美的色彩是什么?对于军人来说是迷彩那是青春的本色是理想、使命的颜色40张纯迷彩高清原图壁纸送给你so快来收图!!军报记者微信发布作者:剑客小吉;编辑:王旭;编审:曲延涛;投稿邮箱:jfjbwx@16...

你还在用百度搜图?推荐5个图片素材库,你要的图片都有!

自媒体运营人每天都需要进行内容创作,所以少不了图片、视频、文案素材等,那么这些自媒体素材哪里找呢?今天,就给大家分享5个图片和视频素材库,文案素材下期再给大家详细介绍。图片和视频素材现在已经是做短视频...

《2》图片原创无版权素材

粉樱于雨中轻轻摇曳,花瓣飘呀飘的,落在小径上、湖面上,将世界晕染成柔和的粉色。雨滴似银线,串联起天空与湖水,古亭在一旁静静凝望,连空气都透着甜意。我们一直在寻觅“诗意”的模样,原来就是这般——有落花纷...

太美了!100个令人窒息的绝美风景摄影照

全网最全的图片素材网站分享!任意下载!值得收藏!

自媒体时代,很多内容创作者都需要高清的图片资源。因为图片不清晰会带来不好的用户体验~众所周知,从网上下载的图片一般都是有版权的!如果你直接下载使用,可能会有侵权的风险!今天为了帮助大家解决图片问题,今...

中秋节素材(海报+插画)!绝景良时难再并

部分预览随机选取中秋节素材(海报+插画)(仅供会员下载)...

10张早上好美图,早安祝福语和祝福图片选集

每天准时分享接收:早安问候图片、漂亮的早安图片、问候祝福语、动态聊天表情包等等每日的祝福准时送达,愿你用满满的正能量开启新的一天。美满,是日常的点点汇聚;情谊,是时光的悠悠长卷;一声招呼,穿越五湖四海...

晚安心语正能量经典素材带图片,让你一见倾心

一、没事的,每个人大概都会经历一些情绪崩溃或者极端的时刻,会好的,会熬过来的。二、以后,只对两种人好,一种是对我好的人,一种是懂得我的好的人,一个人的温暖也是有限的啊,一点都不能浪费。三、要钱,就要努...

太厉害了,52种科幻画主题创意素材,极其脑洞大开,科技创新未来

图片来自网络,仅作分享,如有侵权请联系删除哦...

综合绘画素材—29张冬天主题绘画素材,一起来画你心中的冬天呀

图片来自,仅作分享,如有侵权请联系删除哦...

20张彩色线描装饰画素材!一起欣赏线条带来的艺术美呀!

图片来自网络,仅作分享,如有侵权请联系删除哦...

国外的免费素材网站!这3个大神私藏款,你还没用过?

做PPT没素材?去网上找了半天,浪费时间不说,大部分还收费,等于白忙活!不少小伙伴也问我有没有免费好用的素材网站,这不就来了。今天和大家分享3个国外的素材网站,关键是免费又高质量。不管是PPT设计还是...

8个高清无版权的图片资源网站,质量高又免费,够你用一辈子

很多时候我们找素材总是要花费很多时间,今天就给大家分享8个,高清无版权的图片资源网站,质量高又免费,够你用一辈子。01*Logosc链接:https://www.logosc.cn/so/这是一个免版...

100种超萌手帐素材简笔画,小白看一遍也能学会

手帐素材集中营:天气、美食、植物花草、动物、人物、乐器都在这里。一次画个够,转存轻松做手帐~爱画画,爱生活~...

超治愈萌系手帐素材大全 美食旅游花草人物花边都备齐了

现代人每天都生活在一个充满焦灼感的空气中,成年人的世界里,每个人都不容易。不论是生活还是工作,都充满了各种挫折。很少有人能一帆风顺,为学习、为工作、为家庭、为感情、我们总会在坎坎坷坷中成长,难免会觉得...