自动垃圾收集 许多编程语言都允许在程序运行时动态分配内存块,分配内存块的过程由于语言句法不同而 有所变化,但总是要返回指向存储区起始位置的指针。 在 C,C 及其它一些语言中,程序员负责取消分配内存块。有时这是一件很困难的事情。 因为程序员并不总是事先知道内存块应在何时被释放。当在系统中没有能够被分配的内存块 时,可导致程序瘫痪,这种程序被称作具有内存漏洞。 当分配内存块不再需要时,程序或运行环境应取消分配内存块。

言(HTML)的 Web 页来调用。 Java 运行环境具有一些特殊性,或者有很多特殊的人为建立的运行环境,所以 Java 编程中 经常建立各种组件,它们可以在特定环境中运行,如 Servlet、JavaBean、JSP 等。 在 Java 技术体系中,有很多免费源自文库非免费的第三方 Java 组件,他们往往提供了某一方面的 解决方案,可以应用在很多项目的开发过程中。 学习 Java 语言需要逐渐了解 Java 技术体系,从局部细节开始学习,从整体中进行认识并选 择方向,从应用中进行巩固提高。 1.2 Java 语言的特点 Java 语言适用于 Internet 环境,是一种被广泛使用的网络编程语言,它具有如下的一些特 点:

垃圾收集就是将不再需要的已分配内存块回收。 在其它一般的语言中,取消分配是程序员的责任。 Java 编程语言提供了一种系统级线程以跟踪存储区分配,来完成垃圾收集: 可检查和释放不再需要的存储块 可自动完成上述工作 可在 JVM 实现周期中,产生意想不到的变化 良好的代码健壮性 Java 能够检查程序在编译和运行时的错误。类型检查能帮助用户检查出许多在开发早期出现 的错误。同时很多集成开发工具(IDE)的出现使编译和运行 Java 程序更加容易,并且很多 集成开发工具(如 Eclipse)都是免费的。

1.3 面向对象与面向过程的差异 一种程序设计语言的产生,不仅是程序设计技术的改进,也包含了表达和认知思想的进步。 以 C 语言为代表的部分早期语言,被称为面向过程的语言,不仅因为其程序设计的表达形式 是以过程为基本元素,本质上更在于此时对计算机化的系统的理解的主导思想还是控制流或 者数据流的,构成系统的要素是模块——处理逻辑。 面向对象语言的产生,是因为对于系统的理解或抽象到了更为高级的层次。此时的认知思想 不仅更接近于现实世界,其抽象程度也很高。因而,既有易懂的一方面,也有难懂的另一方 面,就看理解的境界了。 1.3.2 面向对象思想介绍 面向对象思想,对现实世界采用直观的理解,计算机化时候采用深度的抽象,简单地可以总 结如下: 系统是由事物构成的,事物之间是有联系的,复杂的事物也是系统; 系统与系统、系统与事物、事物与事物之间是有明确界限(边界)的; 系统或事物的状态刻画可以用属性表示,属性一般是些简单的数据,如果复杂那就是事物了; 系统或事物的状态会发生变化,称为行为,产生变化是有原因的(内部的或外部的),变化的 过程可能是复杂的; 不同的事物之间会具有共同的属性和行为,共同的极端情形就是完全包含。 基于以上的认识,一个运行时(动态)的具体系统或事物,是由几个更小的具体事物构成(极 端的事物就是一个简单的属性数据),它们是不断发生变化的。如果对事物这一概念进行了有 效的抽象,那么问题就迎刃而解。 首先,将任何一个具体的事物称为对象(Object),它的极端情形就是过去的变量;事物是分 类的,每一类事物都具有统一的属性和行为,即类型——抽象数据类型,简称为类(Class); 行为既然是过程,那么就抽象成函数,命名为方法,以示区别。 例如: 描述身高或姓名,各自只是一个简单的数据变量; 描述一个学生,可以使用学号、姓名、宿舍、班级等;那更换宿舍算什么呢!

平台无关性(可移植、跨平台) Java 虚拟机(JVM)是在各种体系结构真实机器中用软件模拟实现的一种想象机器,必要时 候可以用硬件实现。 当然,这些虚拟机内部实现各异,但其功能是一致的——执行统一的 Java 虚拟机指令。 Java 编译器将 Java 应用程序的源代码文件(.java)翻译成 Java 字节码文件(.class), 它是由 Java 虚拟机指令构成的。由于是虚拟机器,因而 Java 虚拟机执行 Java 程序的过程一 般称为解释。 依赖于虚拟机技术,Java 语言具有与机器体系结构无关的特性,即 Java 程序一旦编写好之 后,不需进行修改就可以移植到任何一台体系结构不同的机器上。 从操作系统的角度看,执行一次 Java 程序的过程就是执行一次 Java 虚拟机进程的过程。

面向网络编程 Java 语言产生之初就面向网络,在 JDK 中包括了支持 TCP/IP、HTTP 和 FTP 等协议的类库。

多线程支持 多线程是程序同时执行多个任务的一种功能。多线程机制能够使应用程序并行执行多项任务, 其同步机制保证了各线程对共享数据的正确操作。

良好的代码安全性 运行时(Runtime)一词强调以动态的角度看程序,研究程序运行时候的动态变化,也用运行 时环境一词表达类似的含义。 Java 技术的很多工作是在运行时完成的,如加强代码安全性的校验操作。 一般地,Java 技术的运行环境执行如下三大任务:

简单 Java 语言的语法规则和 C类似,但 Java 语言取消了指针和多重继承,统一使用引用来指示 对象(C中有两种形式,实际上是两种产生对象的途径,而 Java 中只有一种),通过自动垃 圾收集免去了程序设计人员对于内存块的释放工作。

面向对象(近于完全) Java 语言为了提高效率,定义了几个基本的数据类型以非类的方式实现,余下的所有数据类 型都以类的形式进行封装,程序系统的构成单位也是类。因而几乎可以认为是完全面向对象。

言可被用来创建任何常规编程语言所能创建的应用程序。 设计 Java 编程语言的主要目标是:

提供一种易于编程的语言,从而消除其它语言在诸如指针运算和存储器管理方面影响健 壮性的缺陷。

利用面向对象的概念使程序真正地成为完全面向对象的程序。 为使代码尽可能清晰合理、简明流畅提供了一种方法。 为获得如下两点益处提供一种解释环境: 提高开发速度──消除编译─链接—装载—测试周期; 代码可移植性──使操作系统能为运行环境做系统级调用。 为运行不止一个活动线程的程序提供了一种方式。 通过允许下载代码模块,从而当程序运行时也能动态支持程序改变。 为那些保证安全性而装载的代码模块提供了一种检查方法。 精心开发的 Java 核心技术为上述目标的实现提供了保证,其中包括如下几个主要技术: Java 虚拟机 自动垃圾收集 代码安全性 1.1.2 Java 语言的发展 Java 语言的发展目标并不仅仅是一种编程语言,同时还要构建一种开发环境、一种应用环境、 一种部署环境。 作为 Java 语言的最基本支。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注