奇思妙想 · 2024年 6月 1日 0

为什么Java程序运行需要ClassLoader?

44 次浏览

不止Java,只要程序不是目标代码,而是利用虚拟机或者解释器执行,都必须虚拟一层以达到相应类、函数等任何对象的加载。Java字节码没有对象的详细地址和偏移,它们被保存在"类信息"中,必须依赖类加载器加载并解析。C++程序自然不需要这些,编译的目标代码可以"解析"过如上提到的类对象地址(虚拟地址)和偏移,CPU可以直接执行。