Java 私塾跟我学系列——JAVA 篇 网址:http://www.javass.cn 电话:010-86835215
一:Java 是什么
通常我们认为,Java 是:
Ø 一种计算机编程语言
Ø 一种软件开发平台
Ø 一种软件运行平台
Ø 一种软件部署环境
什么意思呢,分别解释一下。
1:Java 是一种计算机编程语言
1.1:语言
要准确地给语言下一个定义很困难,对我们来说也没有必要,但是大家都知道汉语、英
语等是语言。语言是用来干什么的呢?很明显语言是用来交流的,比如大家现在看这些文字,
其实就是我们通过这些文字在交流。
1.2:计算机编程
所谓计算机编程就是:把我们的要求和想法,按照能够让计算机看懂的规则和约定,编
写出来的过程,就是编程。编程的结果就是一些计算机能够看懂并能够执行和处理的东西,
我们把它叫做软件或者程序。事实上,程序就是我们对计算机发出的命令集(指令集)。
1.3:Java 是一种计算机编程语言
我们说 Java 是一种计算机编程语言,首先是说:Java 是一种语言,也就是 Java 是用来
交流的,那么用来谁和谁交流呢?很明显就是人和计算机交流了,换句话说把我们的要求和
想法用 Java 表达出来,那么计算机能看懂,就能够按照我们要求运行,而这个过程就是我
们说的使用 Java 编程,所以我们讲 Java 是一种计算机编程语言。
为了让计算机看懂,Java 会有一系列的规则和约定,这些就是 Java 的语法。
2:Java 是一种软件开发平台
2.1:什么是软件开发
可以简单地理解为:编程的结果是软件或者程序,而编程的过程就是软件开发。软件开
发的基本步骤包括:需求分析、概要设计、详细设计、编码、测试、维护等阶段。
2.2:什么是开发平台
在软件开发的过程中,我们需要很多的工具来辅助我们的工作,不可能什么都从头自己
做。我们把编程的环境和相应的辅助工具统称为开发环境,开发平台就是用来提供这个开发
环境的。
2.3:Java 是一种开发平台
Java 不单纯是一个编程的语言,它自身提供了一系列开发 Java 所需要的环境和工具,
来进行编译、解释、文档生成、打包等,比如:javac.exe、java.exe 等等,这些我们后面会
讲到,现在不明白也没有关系。所以我们讲 Java 是一个开发平台
PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
Java 私塾跟我学系列——JAVA 篇 网址:http://www.javass.cn 电话:010-86835215
3:Java 是一种软件运行平台
3.1:什么是软件的运行平台
如同我们需要阳光、空气、水和食物才能正常存活一样,软件最终要能够运行,也需要
一系列的外部环境,来为软件的运行提供支持,而提供这些支持的就是运行平台。
3.2:Java 是一种运行平台
Java 本身提供 Java 软件所需要的运行环境,Java 应用可运行在安装了 JRE(Java
Runtime Environment)的机器上,所以我们说 Java 是一个运行平台。
JRE:Java Runtime Environment,Java 运行环境。
4:Java 是一种软件部署环境
4.1:什么是软件的部署
简单地讲,部署就是安装,就是把软件放置到相应的地方,并且进行相应的配置(一般
称作部署描述),让软件能够正常运行起来。
4.2:Java 是一种软件部署环境
Java 本身是一个开发的平台,开发后的 Java 程序也是运行在 Java 平台上的。也就是说,
开发后的 Java 程序也是部署在 Java 平台上的,这个尤其在后面学习 JEE(Java 的企业版)
的时候,体现更为明显。
二:Java 能干什么
Java 能做的事情很多,涉及到编程领域的各个方面。
1:桌面级应用:尤其是需要跨平台的桌面级应用程序。
先解释一下桌面级应用:简单的说就是主要功能都在我们本机上运行的程序,比如
word、excel 等运行在本机上的应用就属于桌面应用。
2:企业级应用
先解释一下企业级应用:简单的说就是大规模的应用,一 般 使用人数较多,数据量较大,
对系统的稳定性、安全性、可扩展性和可装配性等都有比较高的要求。
这是目前 Java 应用最广泛的一个领域,几乎一枝独秀。包括各种行业应用,企业信息
化,也包括电子政务等,领域涉及:办公自动化 OA,客户关系管理 CRM,人力资源 HR,
企业资源计划 ERP、知识管理 KM、供应链管理 SCM、企业设备管理系统 EAM、产品生命
周期管理 PLM、面向服务体系架构 SOA、商业智能 BI、项目管理 PM、营销管理、流程管
理 WorkFlow、财务管理……等等几乎所有你能想到的应用。
3:嵌入式设备及消费类电子产品
包括无线手持设备、智能卡、通信终端、医疗设备、信息家电(如数字电视、机顶盒、
电冰箱)、汽车电子设备等都是近年以来热门的 Java 应用领域,尤其是手机上的 Java 应用
程序和 Java 游戏,更是普及。
4:除了上面提到的,Java 还有很多功能:如进行数学运算、显 示图形界面、进行网络操作、
进行数据库操作、进行文件的操作等等。
PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
Java 私塾跟我学系列——JAVA 篇 网址:http://www.javass.cn 电话:010-86835215
三:Java 有什么
Java 体系比较庞杂,功能繁多,这也导致很多人在自学 Java 的时候总是感觉无法建立
全面的知识体系,无法从整体上把握 Java 的原因。在这里我们先简单了解一下 Java 的版本。
具体的 Java 体系知识结构,将在后面详细讲述。
Java 分成三种版本,分别是 Java 标准版(JSE)、Java 微缩版(JME)和 Java 企业版(JEE),
每一种版本都有自己的功能和应用方向。
1:Java 标准版: JSE(Java Standard Edition)
JSE(Java Standard Edition)是 Sun 公司针对桌面开发以及低端商务计算解决方案而开
发的版本,例如:我们平常熟悉的 Application 桌面应用程序。这个版本是个基础,它也是
我们平常开发和使用最多的技术,Java 的主要的技术将在这个版本中体现。本书主要讲的
就是 JSE。
2:Java 微缩版:JME(Java Micro Edition)
JME(Java ,Micro Edition) 是对标准版 JSE 进行功能缩减后的版本,于 1999 年 6 月
由 Sun Microsystems 第一次推向 Java 团体。它是一项能更好满足 Java 开发人员不同需求
的广泛倡议的一部分。Sun Microsystems 将 JME 定义为“一种以广泛的消费性产品为目标
的高度优化的 Java 运行时环境,包括寻呼机、移动电话、可视电话、数字机顶盒和汽车导
航系统。”
JME 是致力于消费产品和嵌入式设备的开发人员的最佳选择。尽管早期人们对它看好而
且 Java 开发人员团体中的热衷人士也不少,然而,JME 最近才开始从其影响更大的同属产
品 JEE 和 JSE 的阴影中走出其不成熟期。
JME 在开发面向内存有限的移动终端(例如寻呼机、移动电话)的应用时,显 得 尤 其实用。
因为它是建立在操作系统之上的,使 得 应 用的开发无须考虑太多特殊的硬件配置类型或操作
系统。因此,开发商也无须为不同的终端建立特殊的应用,制造商也只需要简单地使它们的
操作平台可以支持 JME 便可。
3:Java 企业版:JEE(Java Enterprise Edition)
JEE(Java Enterprise Edition)是一种利用 Java 平台来简化企业解决方案的开发、部
署和管理相关的复杂问题的体系结构。JEE 技术的基础就是核心 Java 平台或 Java 平台的标
准版,JEE 不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存
取数据库的 JDBC API、CORBA 技术以及能够在 Internet 应用中保护数据的安全模式等等,
同时还提供了对 EJB(Enterprise Java Beans)、Java Servlets API、JSP(Java Server Pages)
以及 XML 技术的全面支持。其 最终目的就是成为一个能够使企业开发者大幅缩短投放市场时
间的体系结构。
JEE 体系结构提供中间层集成框架来满足无需太多费用而又需要高可用性、高可靠性以
及可扩展性的应用的需求。通过提供统一的开发平台,JEE 降低了开发多层应用的费用和复
杂性,同时提供对现有应用程序集成强有力支持,完全支持 Enterprise Java Beans,有良
好的向导支持打包和部署应用,添加了目录支持,增强了安全机制,提高了性能。
JEE 是对标准版进行功能扩展,提供一系列功能,用来解决进行企业应用开发中所面临
的复杂的问题。具体的我们会放到后面 JEE 的课程去讲。
4:三个版本之间的关系
JEE 几乎完全包含 JSE 的功能,然后在 JSE 的基础上添加了很多新的功能。
JME 主要是 JSE 的功能子集,然后再加上一部分额外添加的功能。
PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
Java 私塾跟我学系列——JAVA 篇 网址:http://www.javass.cn 电话:010-86835215
如下图所示:
Java 的 API 类库之中有一组所谓的核心类(CoreClass,即 java.*),在 核心类之外还有
所谓的扩充类(Extended Class,即 javax.*)。根据对这两种类的支持程度,进而区分出几
种不同的 Java 版本。
我们必须以 Java Standard Edition(JSE)作为基准,这个版本做了所有 Java 标准规格
之中所定义的核心类,也支持所有的 Java 基本类。JSE 定位在客户端程序的应用上。
从 JSE 往外延伸,其外面为 Java Enterprise Edition(JEE),此版本除了支持所有的
标准核心类外,而且还增加了许多支持企业内部使用的扩充类,支持 Servlet/JSP 的
javax.servlet.* 类、支持 Enterprise Java Bean 的 javax.ejb.* 类。当然,JEE 必定支
持所有的 Java 基本类。JEE 定位在服务器端(server-side)程序的应用上。
从 JSE 向内看,是 Java Micro Edition(JME),它所支持的只有核心类的子集合,在 JME
CLDC 的规格之中,只支持 java.lang.* 、java.io.* 、以及 java.util.* 这些类。此版本
也增加了一些支持“微小装置”的扩充类,如 javax.microedition.io.* 类。然而,此版
本并不支持所有的 Java 基本类,就标准的 JMECLDC, 也就是能在 PalmOS 上执行的
KVM(KVirtualMachine)来说,它就不支持属于浮点数(float、double)的 Java 基本类。JME
定位在嵌入式系统的应用上。
最里层,还有一个 Java 的 Smart Card 版本,原本在 Java 的文件之中并没有这样定义,
但是将它画在 JME 内部是很合理的。因为 SmartCard 版本只支持 java.lang.* 这个核心类,
比起 JME 所支持的核心类更少,但它也有属于自己的扩充类,如 javacard.*、javacardx.*
这些类。SmartCard版本只支持 Boolean与 Byte这两种Java基本类,此版本定位在 SmartCard
的应用上。
四:闲话 Java
1:Java 历史
在上世纪 90 年代初,sun 公司有一个叫做 Green 的项目,目的是为家用消费电子产品
开发一个分布式代码系统,这样就可以对家用电器进行控制,和它们进行信息交流。詹姆
斯·高斯林(James Gosling)等人基于 C++开发一种新的语言 Oak(Java 的前身)。Oak 是一
种用于网络的精巧而安全的语言。Sun 公司曾依此投标一个交互式电视项目,但 结果是被 SGI
打败,Sun 打算抛弃 Oak。随着互联网的发展,Sun 看到了 Oak 在计算机网络上的广阔应用
前景,于是改造 Oak,在 1995 年 5 月以“Java”的名称正式发布,从此 Java 走上繁荣之路。
当然提到 Java 历史,不得不提的一个故事就是 Java 的命名。开始“Oak”的命名是以
项目小组办公室外的树而得名,但是 Oak 商标被其他公司注册了,必须另外取一个名字,
传说有一天,几位 Java 成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在
咖啡馆喝着 Java(爪哇)咖啡,有一个人灵机一动说就叫 Java 怎样,得到了其他人的赞同,
于是,Java 这个名字就这样传开了。当然对于传说,了解一下就好了,不必过于认真。
2:Java 大事记
JEE
JSE
JME
PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn