我知道函数只在内存中加载一次。我的疑问是...如果我们创建一个类的对象如何引用该函数?对象创建和函数调用的背后是什么?对象中是否有指向该函数的指针?关于类和对象的疑问
2
A
回答
1
我相信你正在寻找术语“virtual method table”。
这是语言(编译器)用于确定调用虚拟函数时调用什么方法(并且在Java中所有函数都是虚拟的)的机制。
1
创建对象时,只有它的数据字段正在创建(分配)。在整个程序运行期间,类方法永远驻留在内存中。
对象是否有指向该方法的指针或否是依赖于语言的。例如,在C++中,对象包含指向虚拟方法的指针,而常规和静态方法仅由其常量地址调用。
相关问题
- 1. 关于httpd,nginx和Vesta的疑问CP
- 2. 关于别名的疑问
- 3. 关于视图的疑问
- 4. 关于PHP Cookies的疑问
- 5. 抽象类中的疑问
- 6. 关于GCD和线程类别之间的区别的疑问
- 7. 关于对象类型的问题
- 8. 关于指针和对象的问题
- 9. 对基类访问的疑问
- 10. 关于PHP执行时间的疑问
- 11. 关于iPhone中的通知疑问
- 12. 关于objc运行时的疑问
- 13. 关于javascript,css,ssh,html的疑问
- 14. 关于实体框架的疑问
- 15. 关于代码声明的疑问Java
- 16. 关于neo4j HA设置的疑问
- 17. 关于网格系统的疑问
- 18. 关于通过引用的疑问
- 19. 关于N-Queen求解的疑问?
- 20. 关于正则表达式的疑问
- 21. 关于网页设计的疑问
- 22. 关于keras示例的疑问pretrained_word_embeddings
- 23. 关于面向对象和对象的问题
- 24. 关于用户定义类的对象类函数访问
- 25. 关于BNF语法和Prolog的DCG语法的一些疑问
- 26. 对bindService的疑问
- 27. 关于AtomicInteger和打印二维数组的疑问
- 28. 关于Winsock内核缓冲区和Nagle算法的疑问
- 29. 关于如何结合CDI beans的疑问:SessionScoped和RequestScoped
- 30. 关于JavaScript数据类型和对象类型的困惑
先看看覆盖JVM内部的任何东西,比如[this](http://www.artima.com/insidejvm/ed2/jvm.html)或许多其他东西。 –