第1章--Java语言基础.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第1章--Java语言基础.pdf》由会员分享,可在线阅读,更多相关《第1章--Java语言基础.pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1第 1 章 Java 语言概述 本章主要介绍什么是 Java 语言,以及 Java 语言具有哪些特点。在讲解的时候,为了能突出 Java 语言的特色,详细的分析了其与 C/C+语言的区别。另外,本章还为初学者特意安排了一节,针对如何学习 Java 语言,提出了一些中肯的建议。1.1 Java 的语言特点+Java 是由 Sun 公司开发出来的一种语言,是一种面向对象的编程语言。其在很多方面与 C/C+相似,但在实际编程时又有很多区别。下面通过对他们的比较,了解 Java 语言的特点。1.1.1 Java 语言与 C、C+的区别 首先应该清楚,Java 是由 C+发展而来的,保留了 C+的大
2、部分内容,其编程方式类似于 C+。但 Java 的句法更清晰、规模更小、更易学。Sun 公司对多种程序设计语言进行了深入研究,并摒弃了其他语言的不足之处,最终退出了 Java。正是这样,Java 从根本上解决了 C+的固有缺陷,形成了一种新的完全面向对象的语言。Java 和 C/C+的相似之处多于不同之处,有 C 基础的读者,学习 Java 会更容易。相比较而言,Java 的编程环境更为简单。因篇幅所限,这里不能完全列出不同之处,仅列出一些比较显著的区别。?指针指针 Java 没有指针的概念,从而有效地防止了在 CC+语言中,容易出现的指针操作失误(如指针悬空所造成的系统崩溃)。在 C/C+中
3、,指针操作内存时,经常会出现错误。在Java 中没有指针,更有利于 Java 程序的安全。?多重继承多重继承 C+支持多重继承,它允许多父类派生一个子类。也就是说,一个类允许继承多个父类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。所以 Java 不支持多重继承,但允许一个类实现多个接口。可见,Java 既实现了 C+多重继承的功能,又避免了 C+的许多缺陷。?数据类型数据类型 Java 是完全面向对象的语言,所有方法和数据都必须是类的一部分。除了基本数据类型之外,其余类型的数据都作为对象型数据。例如对象型数据包括字符串和数组。类将数据和方法结合起来,把它们
4、封装在其中,这样每个对象都可实现具有自己特点的行为。而 C+将函数和变量定义为全局的,然后再来调用这些函数和变量,从而增加了程序的负担。此外,Java 还取消了 CC+中的结构和联合,使编译程序更简洁。?自动内存管理自动内存管理 Java 程序中所有的对象都是用 new 操作符建立在堆栈上的,这个操作符类似于 C+的 2“new”操作符。Java 自动进行无用内存回收操作,不需要程序员进行删除。当 Java 中一个对象不再被用到时,无须使用内存回收器,只需要给它加上标签以示删除。无用内存的回收器在后台运行,利用空闲时间工作。而 C+中必须由程序释放内存资源,增加了程序设计者的负担。?操作符重载
5、操作符重载 Java 不支持操作符重载,操作符重载被认为是 C+的突出特征。在 Java 中虽然类可以实现这样的功能,但不支持操作符重载,这样是为了保持 Java 语言尽可能简单。?预处理功能预处理功能 CC+在编译过程中都有一个预编译阶段,即预处理器。预处理器为开发人员提供了方便,但增加了编译的复杂性。Java 允许预处理,但不支持预处理器功能,因为 Java 没有预处理器,所以为了实现预处理,它提供了引入语句(import),它与 C+预处理器的功能类似。?Java 不支持缺省函数参数,而不支持缺省函数参数,而 C+支持。支持。在 C 中,代码组织在函数中,函数可以访问程序的全局变量。C+
6、增加了类,提供了类算法,该算法是与类相连的函数,C+类方法与 Java 类方法十分相似。由于 C+仍然支持 C,所以 C+程序中仍然可以使用 C 的函数,结果导致函数和方法混合使用,使得 C+程序比较混乱。Java 没有函数,作为一个比 C+更纯的面向对象的语言。Java 强迫开发人员把所有例行程序包括在类中。事实上,用方法实现例行程序可激励开发人员更好地组织编码。?字符串字符串 C 和 C+不支持字符串变量,在 C 和 C+程序中使用“Null”终止符代表字符串的结束,在 Java 中字符串是用类对象(String 和 StringBuffer)来实现的,在整个系统中建立字符串和访问字符串元
7、素的方法是一致的。Java 字符串类是作为 Java 语言的一部分定义的,而不是作为外加的延伸部分。此外,Java 还可以对字符串用“+”进行连接操作。?goto 语句语句“可怕”的 goto 语句是 C 和 C+的“遗物”。它是该语言技术上的合法部分,引用 goto语句造成了程序结构的混乱,不易理解。goto 语句一般用于无条件转移子程序和多结构分支技术。Java 不提供 goto 语句,其虽然指定 goto 作为关键字,但不支持它的使用,这使程序更简洁易读。?类型转换类型转换 在 C 和 C+中,有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。例如,在 C+中可将一个浮点值赋予
8、整型变量,并去掉其尾数。Java 不支持 C+中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。1.1.2 Java 面向对象的特性和多态性 Java 是一种跨平台、适合于分布式计算机环境的面向对象编程语言。具体来说,它具有如下特性:简单性、面向对象、分布式、解释性、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。下面将重点介绍 Java 语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性。面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象,对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如
9、果说传统的过程式编程语言是以过程为中心,以算法为驱动的话,那 3面向对象的编程语言就是以对象为中心,以消息为驱动。用公式表示,过程式编程语言为:“程序算法数据”。面向对象编程语言为:“程序对象消息”。所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java 也不例外。现实世界中的对象均有属性和行为映射到计算机程序上。属性则表示对象的数据,行为则表示对象的方法。封装是用一个自主式的框架,把对象的数据和方法连接在一起,形成一个整体。对象支持封装,是封装的基本单位。Java 语言的封装性较强,那是因为 Java 无全程变量、无主函数。在 Java 中,绝大部分成员是对象,只有简单的数字类型(
10、字符类型和布尔类型除外)。对于这些类型,Java 提供了相应的对象类型包装,以便与其他对象交互操作。有关封装的原理如图 1.1 所示。方法1方法2方法3属性值1属性值2属性值3类将方法和属性值封装在其中 图 1.1 封装的原理示意图 多态性就是多种表现形式。具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整形、浮点型或字符型,不管存储的是何种数据,堆栈的算法实现都是一样的。针对不同的数据类型,编程人员不必手工选择,只需要使用统一方法名(参数不同),系统可以自动选择。运算符重载一直被认为是一种优秀的多态机制体现。由于考虑到运算符重载会
11、使程序变得难以理解,所以 Java最后还是把它取消了。有关多态的原理如图 1.2 所示。方法体1方法体2方法体3方法体4相同的方法名称 图 1.2 多态的原理示意图 继承是指一个对象直接使用另一个对象的属性和方法。事实上,现实生活中遇到的很多实体,都具有继承的含义。例如,把汽车看成一个实体,它可以分成多个子实体,如:轿车、公交汽车等。以上子实体都具有汽车的特性,因此汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。子类可以继承父类的属性和方法,与其他面向对象编程语言不同,Java只支持单一继承。有关继承的原理如图 1.3 所如示。4父类父类的方法父类的属性值子类子类自己的方法父类的属性值父
12、类的方法子类自己的属性值通过子类继承父类 图 1.3 继承的原理示意图 1.1.3 Java 的平台无关性 Java 的平台无关性是指用 Java 写的应用程序不用修改,就可以在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C 和 C+是具有一定程度的源代码级平台无关。源代码级平台无关表明了用 C/C+写的程序无需修改,只需重新编译就可以在不同平台上运行。Java 主要靠 Java 虚拟机 JVM(Java Virtual Machine),在目标代码级实现平台无关性。JVM 是一种抽象机器,它附着在具体操作系统之上,其本身具有一套虚拟机器指令,并有自己的栈、寄存器组等。JVM
13、 通常是在软件上而不是在硬件上实现的。目前,Sun 系统公司已经设计实现了 Java 芯片,它主要使用在网络计算机上。另外,Java芯片的出现也会使 Java 更加容易嵌入到家用电器中。在 JVM 上,有一个 Java 解释器,使用它来解释 Java 编译器编译后的程序。Java 编程人员在编写完软件后,通过 Java 编译器,将 Java 源程序编译为 JVM 的字节代码。任何机器只要配备了 Java 解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。有关 Java 平台无关性的原理如图 1.4所示。C语言的源代码编译器在不同平台上运行WindowslinuxJava源代码不
14、同平台的虚拟机Windows虚拟机linux虚拟机Windowslinux运行运行 图 1.4 Java 平台无关性示意图 另外,Java 采用的是基于 IEEE 标准的数据类型。通过 JVM 保证数据类型的一致性,也确保了 Java 平台的无关性。Java 的平台无关性具有深远意义。首先,它的出现使得编程人员所梦寐以求的事情变成了事实,这将大大地加快和促进软件产品的开发。其次 Java 的平台无关性正好迎合了“网络计算机”的思想。5如果常用的应用软件都使用 Java 重新编写,并且放在某个 Internet 服务器上,那么具有网络计算机的用户,将不需要占用大量空间安装软件,他们只需要一个 J
15、ava 解释器。每当需要使用某种应用软件时,下载该软件的字节代码即可,其运行结果也可以发回服务器。目前已有数家公司开始使用这种新型的计算机模式,构筑自己的信息系统。1.1.4 Java 分布式应用和多线程的特点 本节讲述 Java 程序的分步式和多线程的特点。分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上。操作分布是指把一个计算分散在不同主机上处理。Java 支持客户机/服务器计算模式,因此它支持这两种分布。对于数据分布,Java 提供了一个叫做 URL 的对象,利用这个对象,可以打开并且访问具有相同 URL 的对象,访问方式与访问本地文件系统相同。对于操作分布,Ja
16、va 的 Applet 小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。有关分布式的原理如图 1.5 所示。使用Applet小程序访问服务器让服务器处理一部分数据客户端自己处理一部分数据客户端服务器 图 1.5 分布式示意图 Java 提供了一整套网络类库,开发人员可以利用这些类库进行网络程序设计,方便的实现 Java 的分布式特性。线程是操作系统的一种新概念,线程又被称作轻量进程,是比传统进程更加小的,并且可以并发执行的单位。C 和 C+采用单线程系统结构,而 Java 提供了多线程的支持。Java 在两方面支持多线程。一方面,Java 环境本身就是多线程的。若干个
17、系统线程运行,负责必要的无用单元回收、系统维护等系统级操作。另一方面,Java 语言内置多线程控制,可以大大简化多线程应用程序的开发。Java 提供了一个 Thread 类,由它负责启动、运行、终止线程,并且可以检查线程状态。Java 线程还包括一组同步原语,这些原语负责对线程实行并发控制。利用 Java 的多线程编程接口,开发人员可以方便的写出支持多线程的应用程序,从而提供程序执行的效率。Java的多线程在一定程度上受运行时所在平台的限制,如果操作系统不支持多线程,那么 Java程序的多线程特性就不能表现出来。1.1.5 Java 程序的可靠性、安全性 本节将详细讲述 Java 的可靠性和安
18、全性。Java 最初的设计目的是电子类消费品,因此要求较高的可靠性。Java 虽然源于 C+,但它消除了许多 C+不可靠的因素,可以防止许多编程错误。它的可靠性和安全性表现在如下几点:?Java 是强类型的语言,要求显式的方法声明。这保证了编译器可以发现方法调用错误,保证程序更加可靠。6?Java 不支持指针,这杜绝了内存的非法访问。?Java 的自动单元收集功能,可以防止内存丢失等动态内存分配导致的问题。?Java 解释器运行时实施检查,可以发现数组和字符串访问的越界。?Java 提供了异常处理机制。程序员可以把一组错误代码放在一个地方,这样可简化错误处理任务,便于恢复。由于 Java 主要
19、用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java 通过自己的安全机制,防止了病毒程序的产生,以及下载程序对本地系统的威胁破坏。当 Java 字节码进入解释器时,首先必须经过字节码校验器的检查,然后 Java 解释器将决定程序中类的内存布局。随后,类装载器负责把来自网络的类装载到单独内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。上述集中机制结合起来,使得 Java 成为安全的编程语言。1.1.6 Java 小程序和应用程序 用 Java 可以写两种类型的程序:小程序和应用程序。小
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内