过子类继承父类
子类
子类自己的属性值
子类自己的方法
父类的属性值
父类的方法
图1.3
继承的原理示意图
1.1.3Java的平台无关性
Java的平台无关性是指用Java写的应用程序不用修改,就可以在不同的软硬件平台上运行。平台无关有两种:
源代码级和目标代码级。C和C++是具有一定程度的源代码级平台无关。源代码级平台无关表明了用C/C++写的程序无需修改,只需重新编译就可以在不同平台上运行。Java主要靠Java虚拟机JVM(JavaVirtualMachine),在目标代码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,其本身具有一套虚拟机器指令,并有自己的栈、寄存器组等。JVM通常是在
软件上而不是在硬件上实现的。目前,Sun系统公司已经设计实现了Java芯片,它主要使用在
网络计算机上。另外,Java芯片的出现也会使Java更加容易嵌入到家用电器中。在JVM上,有一个Java解释器,使用它来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器,将Java源程序编译为JVM的字节代码。任何机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。有关Java平台无关性的原理如图1.4所示。
C语言的源代码Java源代码
编译器不同平台的虚拟机
在不同平台上运行
Windows虚拟机
linux虚拟机
运行
运行
Windows
linux
Windows
linux
图1.4
Java平台无关性示意图
另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java平台的无关性。Java的平台无关性具有深远意义。首先,它的出现使得编程人员所梦寐以求的事情变成了事实,这将大大地加快和促进软件产品的开发。其次Java的平台无关性正好迎合了“网络计算机”的思想。
4
如果
常用的应用软件都使用Java重新编写,并且放在某个Internet服务器上,那么具有网络计算机的用户,将不需要占用大量空间安装软件,他们只需要一个Java解释器。每当需要使用某种应用软件时,下载该软件的字节代码即可,其运行结果也可以发回服务器。目前已有数家公司开始使用这种新型的计算机模式,构筑自己的信息系统。
1.1.4Java分布式应用和多线程