的类。在C程序设计过程中,每当在类中增加一个实例变量或一个成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。Java从以下几个方面采取措施来解决这个问题。a)Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下来,传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。b)一个在存储器中生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定。这样,对类中的变量和方法进行更新时就不至于影响现存的代码。c)解释执行字节码时,这种符号信息的查找和转换过程仅在一个新的名字出现时才进行一次,随后代码便可以全速执行。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。d)Java还简化了使用一个升级的或全新协议的方法。如果你的系统运行Java程序时遇到了不知怎样处理的程序,Java能自动下载你所需要的功能程序。
2什么是java虚拟机?
Java虚拟机JVMJavaVirtualMachi
e在JAVA编程里面具有非常重要的地位。约相当于JAVA运行环境JRE。JAVA虚拟机是在真实机器中用软件模拟实现的一种想象机器,它为不同的硬件平台提供了一种编译JAVA技术代码的规范,该规范使JAVA软件独立于平台。JVM对下列各项做出了定义:指令集,寄存器,类文件格式,栈,垃圾收集堆,存储区。Java虚拟机的功能:
2
f(1)通过ClassLoader寻找和装载Class文件(2)解释字节码成为指令并执行,提供Class文件的运行环境(3)进行运行期间垃圾回收(4)提供与硬件交互的平台JAVA虚拟机是JAVA平台无关的保障。正是因为有虚拟机这中间层,JAVA才能够实现与平台无关。虚拟机就好比是一个JAVA运行的基本平台,所有的JAVA程序都运行在虚拟机上。所有与平台有关的东西都是由虚拟机去处理。
3什么是方法重载(Overloadi
g)与方法覆盖(Overridi
g)?
1方法重载(Overloadi
g):方法重载是指同名的方法在不同的地方具有多种含义。方法重载使得在类中可以存在方法名相同的多个方法,但方法的原型不能完全相同,由方法的参数不同来决定所使用的是哪个方法。方法的原型包括方法名和方法参数类型。2方法覆盖(overridi
g)方法覆盖也叫方法重写,是指方法的含义被重新编写后的方法所替代。对于方法覆盖,子类可以重新实现父类的某些方法,并r