java静态和动态绑定的对比
不同绑定的比较
1、静态绑定发生在编译期,动态绑定发生在运行期。
2、动态绑定的灵活性高于静态绑定,因为静态绑定是在编译过程中确定的,动态绑定在编译过程中不知道调用哪种方法。
3、静态绑定调用方法比动态绑定快,因为静态绑定可以直接调用,动态绑定需要搜索方法表。
实例
静态绑定
class Super{ public static void sample(){ System.out.println("This is the method of super class"); } } Public class Sub extends Super{ Public static void sample(){ System.out.println("This is the method of sub class"); } Public static void main(String args[]){ Sub.sample() } }
(2)动态绑定
class Super{ public void sample(){ System.out.println("This is the method of super class"); } } Public class extends Super{ Public static void sample(){ System.out.println("This is the method of sub class"); } Public static void main(String args[]){ new Sub().sample() } }
java内存溢出的四种情况:1、堆溢出,堆是存放实例对象的,但是这样堆区迟早会满。设置了堆区内存,无限创建就会抛出异常。public class HeapOOM { static class User {} public sta ...