class A{
int a =1;
double d = 2.0;
void show(){
System.out.println("Class A:a="+a+"\td="+d);
}
}
class B extends A{
float a = 3.0f;
String d = "Hello World!";
void show(){
super.show();
System.out.println("Class B:a="+a+"\td="+d);
}
}
复制代码
(1)若在应用程序的main方法中有以下语句:
A a = new A();
a.show();
则输出结果是?
(2)若在应用程序的main方法中定义类B的对象b:
A b = new B();
b.show();
则输出结果是?
A:第一个是ClassA :a=1 d=2.0
第二个是ClassA :a =1 d=2.0
ClassB : a=3.0 d=Hello World!
Q:heap和stack有什么区别?
A:堆和栈。栈存放对象的引用,堆存放对象实体。堆中的对象是有jvm的垃圾回收器负责回收。
Q:请描述下JVM加载class文件的原理机制。
A:JVM加载class是动态性的,也就是当“需要”的时候才会加载,这是也是为节约JVM内存来考虑的。同时JVM的类加载是父类委托机制,这个机制简单来讲,就是“类装载器有载入类的需求时,会先请示其Parent使用其搜索路径帮忙载入,如果Parent 找不到,那么才由自己依照自己的搜索路径搜索类”。