java - 内存中的内部类在哪里?
问题描述
我们知道一个类通常被加载到元空间中,但是非静态内部类呢?加载后它去了哪里?
class OuterClass {
/**
* Where is this class? would this class goes to the meta space?
*/
class InnerClass{
public void method(){
/**
* And where is this class?
*/
class InnerClassInMethod{
public void method(){
System.out.println("Hello");
}
}
new LocalClass().method();
}
}
}
什么时候会加载这个类?它会和外部类一样被加载还是延迟到一个实例被请求?而且,同样的问题,他们将被卸载?
解决方案
中MetaSpace
也是。static
和类之间的唯一区别non-static
是non-static
类包含对this
父类的引用。
推荐阅读
- c# - 检测现代待机中的电源状态变化
- r - 使用函数内的逻辑条件访问全局向量分量
- reactjs - 找不到 React 模块?
- jquery - 我想从我通过 ajax 函数提供的 id 中获取订单号,但没有成功显示值:function(response)
- c++ - 为什么这个程序 35% 被接受,但其余的是运行时错误?
- python - 我在用 bs4 抓取网页时遇到问题
- .net - 将 MERGE 语句的更新列审计为不同表中的行
- python-3.x - 随机选择文件中的两个位置并交换单词
- laravel - 在 Laravel 中创建后返回带有关系的 Modal
- python - 使用 Tensorflow 张量实现布尔索引并为这些索引分配一个新值