- Java程序设计案例教程(第三版)
- 沈大林
- 1703字
- 2025-02-26 05:06:35
1.1.3 Java语言的特点
Java语言是一种完全面向对象的程序设计语言,它是解释执行的,能跨平台使用。Java具有高性能和高度的安全性,支持多线程,具有内存垃圾自动收集机制。随着学习的深入,读者会逐渐对Java的术语有较深入的理解。
1.面向对象
在现实世界中,任何实体都可以看作一个对象,对象具有状态和行为两大特征。在Java语言中,没有采用传统的、以过程为中心的编程方法,而是采用以对象为中心,通过对象之间的调用来解决问题的编程方法。
在Java语言中,除了数值、布尔逻辑和字符三个基本数据类型外,其他类型都是对象。Java的程序代码以类的形式组织,由类来定义对象的各种状态和行为,如果不创建新类就无法创建程序。Java程序在运行时必须先创建一个类的实例,然后才可以提交运行。
Java支持继承特性。Java的类可以从其他类中继承行为,但Java只支持类的单重继承,即每个类只能从一个类中继承,这可以避免因支持多重继承而带来的混乱和语言的繁杂。Java支持接口,接口允许程序员定义方法但又不立即实现。一个类可以实现多个接口,利用接口可以得到多重继承的许多优点而又没有多重继承的问题。
Java摒弃了C++中的非面向对象特性(如结构和函数调用),也不再支持全局变量。
2.结构简单化
Java语言的程序构成及语言风格等与C语言和C++语言非常类似,但是Java语言摒弃了C语言和C++语言的复杂、不安全特性以及一些不是绝对必要的功能。例如,指针的操作和内存的管理、头文件、预处理器、运算符重载和隐式的类型转换等。
此外,Java语言提供了种类丰富、功能强大的类库,提高了编程效率,通过实现自动垃圾收集大大简化了内存管理的工作。因此,Java比C++更容易学习,其程序的可读性也更强。
在Java语言系统中添加了自动垃圾收集功能,能够不断对内存进行扫描,自动释放不再使用的内存块,这使程序员不需要关心内存管理问题,使Java程序的编写变得简单,同时,还减少了程序中因内存管理问题而产生的错误。
3.与平台无关
使用Java语言编写的应用程序不需要进行任何修改,就可以在不同的软、硬件平台上运行。这主要是由编译器将Java程序编译为与机器无关的字节码和通过Java虚拟器字节码翻译成机器语言来实现的。
Java为了做到与平台无关,还制定了完全统一的语言文本,如Java的基本数据类型不会随支持Java的平台的不同而变化,一个整型总是32位,一个长整型总是64位。而C和C++程序设计语言就无法满足这一点。另外,Java还提供了由用于访问底层操作系统功能的类所组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。
4.支持多线程
多线程是指在一个程序中可以同时执行多个任务。线程也称轻量进程,是一个传统大进程里分出来的、独立的、可并发执行的单位。OS/2、Windows NT、Windows XP/7/8/10等操作系统都支持并发,这意味这些操作系统都能够同时进行多项任务的并发处理。Java程序可以有多个执行线程。例如,可以让一个线程进行复杂的计算,而让另一个线程用来进行用户交互,这样用户可以在不中断计算线程的前提下与系统进行交互。
C语言和C++采用单线程体系结构,而Java语言支持多线程技术。
5.安全高效
因为Java最初的设计目的是应用于电子类家庭消费产品,所以要求有较高的可靠性。现今的Java语言主要用于网络应用程序的开发,因此对安全性有很高的要求。如果没有安全保证,用户运行从网络下载的Java语言应用程序是十分危险的。Java语言通过使用编译器和解释器,在很大程度上避免了病毒程序的产生和网络程序对本地系统的破坏。
Java语言提供了异常处理机制,有效地避免了因程序编写错误而导致的死机现象。这种异常处理机制是目前操作系统的错误处理方法,Java将异常处理机制引入语言中,使程序员能够用统一的方法来处理各种错误。
Java语言提供了内存保护机制,使得Java程序只能修改被允许部分的内存值。对于传统的程序,它们可以访问计算机中所有内存的值,这会引起一系列问题。
此外,Java语言还取消了指针操作,从而消除了复写内存单元或破坏有用数据的可能性。Java语言具有真正的数组和串的概念,即解释器能够检查数组或串的索引值,以防越界;而且不能将任意整数通过强制类型转换的方法转换成对某一对象的引用。
6.动态性
Java语言不但提供了适合于Internet环境的对象连接机制、程序组织方式和名字空间,还通过提供支持TCP/IP、WWW等的网络包,使用户能够方便地访问其他URL上的资源。