logo资料库

Java基础入门教程.pdf

第1页 / 共189页
第2页 / 共189页
第3页 / 共189页
第4页 / 共189页
第5页 / 共189页
第6页 / 共189页
第7页 / 共189页
第8页 / 共189页
资料共189页,剩余部分请下载后查看
第一次看到的地方
Java 私塾跟我学系列——JAVA 篇 网址:http://www.javass.cn 电话:010-86835215 第一章 Java 入门 教学目标: i理解 Java 是什么 i了解 Java 能干什么 i理解 Java 有什么 i了解 Java 的历史、现状和特点 i理解 Java 从代码到运行的过程 i理解 Java 虚拟机的功能 i理解垃圾收集是如何进行的 i理解 Java 代码安全性 i掌握 Java 开发环境配置 i编写、编译并运行简单的 Java 程序 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
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 平台上的,这个尤其在后面学习 JEE(Java 的企业版) 的时候,体现更为明显。 Java 本身是一个开发的平台,开发后的 Java 程序也是运行在 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 如下图所示: JEE JSE JME 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 大事记 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
Java 私塾跟我学系列——JAVA 篇 网址:http://www.javass.cn 电话:010-86835215 作为学习 Java 的人士,对 Java 历史上发生的大事件有一个了解是应该的。 JDK(Java Software Develop Kit):Java 软件开发工具包。JDK 是 Java 的核心,包 括了 Java 运行环境,一系列 Java 开发工具和 Java 基础的类库。目前主流的 JDK 是 Sun 公 司发布的 JDK,除了 Sun 之外,还有很多公司和组织都开发了自己的 JDK,例如 IBM 公司开 发的 JDK,BEA 公司的 Jrocket,还有 GNU 组织开发的 JDK 等等。 时间 1995 年 5 月 23 日 1996 年 1 月 1997 年 2 月 18 日 1998 年 12 月 8 日 1999 年 6 月 事件 Java 语言诞生 第一个 JDK—JDK1.0 诞生 JDK1.1 发布 Java2 企业平台 J2EE 发布 Sun 发布 Java 三个版本:标准版 J2SE,企业 版 J2EE,微型版 J2ME JavaSE5.0 发布 JavaSE6.0 发布 2004 年 9 月 30 日 2006 年 12 月 3:Java 特点 简单地说,Java 具有如下特点:简单的、面向对象、平台无关、多线程、分布式、安全、 高性能、可靠的、解释型、自动垃圾回收等特点。 这里只解释一下平台无关和分布式,其余的在后面会逐步接触到。 3.1:平台无关 所谓平台无关指的是:用 Java 写的程序不用修改就可在不同的软硬件平台上运行。这 样就能实现同样的程序既可以在 Windows 下运行,到了 Unix 或者 Linux 环境不用修改就直 接可以运行了。Java 主要靠 Java 虚拟机(JVM)实现平台无关性。 平台无关性就是一次编写,到处运行:Write Once, Run Anywhere 3.2:分布式 分布式指的是:软件由很多个可以独立执行的模块组成,这些模块被分布在多台计算机 上,可以同时运行,对外看起来还是一个整体。也就是说,分布式能够把多台计算机集合起 来就像一台计算机一样,从而提供更好的性能。 4:Java 标准组织——JCP JCP(Java Community Process) 是一个开放的国际组织,成立于 1995 年,主要职能 是发展和更新 Java 技术规范、参考实现(RI)、技术兼容包(TCK)。Java 技术和 JCP 两者 的原创者都是 SUN 计算机公司。组织成员可以提交 JSR(Java Specification Requests), 通过讨论、认可、审核以后,将进入到下一版本的规范里面。 也就是说 JCP 是目前 Java 技术发展事实上的控制者和领导者。 五:Java 如何做到让机器理解我们想要做的东西 用一个图来描述这个过程会比较容易理解: PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
Java 私塾跟我学系列——JAVA 篇 网址:http://www.javass.cn 电话:010-86835215 1:编写代码 首先把我们想要计算机做的事情,通过 Java 表达出来,写成 Java 文件,这个过程就是 编写代码的过程。如上图所示的 Hello.java 文件。 2:编译 写完 Java 代码后,机器并不认识我们写的 Java 代码,需要进行编译成为字节码,编译 后的文件叫做 class 文件。如上图所示的 Hello.class 文件。 3:类装载 ClassLoader 类装载的功能是为执行程序寻找和装载所需要的类。 ClassLoader能够加强代码的安全性,主要方式是:把本机上的类和网络资源类相分离, 在调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用。 4:字节码(byte-code)校验 功能是对 class 文件的代码进行校验,保证代码的安全性。 Java 软件代码在实际运行之前要经过几次测试。JVM 将代码输入一个字节码校验器以 测试代码段格式并进行规则检查--检查伪造指针、违反对象访问权限或试图改变对象类型 的非法代码。 注意----所有源于网络的类文件都要经过字节码校验器 字节码校验器对程序代码进行四遍校验,这可以保证代码符合JVM 规范并且不破坏系统 的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各点可被保证: - 类符合JVM规范的类文件格式 - 无访问限制异常 - 代码未引起操作数栈上溢或下溢 - 所有操作代码的参数类型将总是正确的 - 无非法数据转换发生,如将整数转换为对象引用 - 对象域访问是合法的 5:解释(Interpreter) 可是机器也不能认识 class 文件,还需要被解释器进行解释,机器才能最终理解我们所 要表达的东西。 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
Java 私塾跟我学系列——JAVA 篇 网址:http://www.javass.cn 电话:010-86835215 6:运行 最后由运行环境中的 Runtime 对代码进行运行,真正实现我们想要机器完成的工作。 7:说明 由上面的讲述,大家看到,Java 通过一个编译阶段和一个运行阶段,来让机器最终理解 我们想要它完成的工作,并按照我们的要求进行运行。 在这两个阶段中,需要我们去完成的就是编译阶段的工作,也就是说:我们需要把我们 想要机器完成的工作用 Java 语言表达出来,写成 Java 源文件,然后把源文件进行编译,形 成 class 文件,最后就可以在 Java 运行环境中运行了。运行阶段的工作由 Java 平台自身提供, 我们不需要做什么工作。 六:Java 技术三大特性 1:虚拟机 Java 虚拟机 JVM(Java Virtual Machine)在 Java 编程里面具有非常重要的地位,约 相当于前面学到的 Java 运行环境,虚拟机的基本功能如下: (1):通过 ClassLoader 寻找和装载 class 文件 (2):解释字节码成为指令并执行,提供 class 文件的运行环境 (3):进行运行期间垃圾回收 (4):提供与硬件交互的平台 Java虚拟机是在真实机器中用软件模拟实现的一种想象机器。Java虚拟机代码被存储 在 .class文件中;每个文件都包含最多一个public类。Java 虚拟机规范为不同的硬件平台 提供了一种编译Java技术代码的规范,该规范使Java 软件独立于平台,因为编译是针对作 为虚拟机的“一般机器”而做。这个“一般机器”可用软件模拟并运行于各种现存的计算机 系统,也可用硬件来实现。编译器在获取Java应用程序的源代码后,将其生成字节码,它是 为JVM生成的一种机器码指令。每个Java解释器,不管它是Java技术开发工具,还是可运行 applets 的Web浏览器,都可执行JVM。 JVM 为下列各项做出了定义 - 指令集(相当于中央处理器[CPU] ) - 寄存器 - 类文件格式 - 栈 - 垃圾收集堆 - 存储区 JVM 的代码格式由紧缩有效的字节码构成。由 JVM 字节码编写的程序必须保持适当的类 型约束。大部分类型检查是在编译时完成。任何从属的 Java 技术解释器必须能够运行任何 含有类文件的程序,这些类文件应符合 Java 虚拟机规范中所指定的类文件格式。 1.1:虚拟机是 Java 平台无关的保障 正是因为有虚拟机这个中间层,Java 才能够实现与平台无关。虚拟机就好比是一个 Java 运行的基本平台,所有的 Java 程序都运行在虚拟机上,如下图所示: PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
分享到:
收藏