我们知道,User user=new user();声明一个User类型的user对象时,会在栈内存开辟一个空间,存放指向的堆内存的地址。 那栈的这块空间是否还存放了user的类型User呢?如图红色箭头。user是被声明为User类型,那这个类型肯定是要被记录在内存中的,否则如何知道user是什么类型的呢?那么这个类型是否为我所猜测的那样,存在了栈内存中?
不需要,类型只对于编译期有意义。运行时掉用什么方法查虚表就可以了