Java 其中存储了内部类、静态嵌套类和本地内部类的成员/方法。

Java 其中存储了内部类、静态嵌套类和本地内部类的成员/方法。,java,nested,inner-classes,Java,Nested,Inner Classes,JVM向内部类成员和方法分配空间的方式有什么不同吗。 请提供所有可用类型的嵌套类(静态、本地、非静态、匿名)在此上下文中的区别。 我从其他各种来源进行了搜索,但没有得到清晰的想法。类的静态数据成员与类一起存储,每个实例中的非静态数据成员都存储在一起。类本身是静态的、嵌套的、内部的还是匿名的,这没有任何区别 不管类本身是静态的、嵌套的、内部的还是匿名的,方法(无论是静态的还是非静态的)都与类一起存储。类的静态数据成员与类一起存储,每个实例中的非静态数据成员一起存储。类本身是静态的、嵌套的、内部的还

JVM向内部类成员和方法分配空间的方式有什么不同吗。 请提供所有可用类型的嵌套类(静态、本地、非静态、匿名)在此上下文中的区别。
我从其他各种来源进行了搜索,但没有得到清晰的想法。

类的静态数据成员与类一起存储,每个实例中的非静态数据成员都存储在一起。类本身是静态的、嵌套的、内部的还是匿名的,这没有任何区别


不管类本身是静态的、嵌套的、内部的还是匿名的,方法(无论是静态的还是非静态的)都与类一起存储。

类的静态数据成员与类一起存储,每个实例中的非静态数据成员一起存储。类本身是静态的、嵌套的、内部的还是匿名的,这没有任何区别


不管类本身是静态的、嵌套的、内部的还是匿名的,这些方法(无论是静态的还是非静态的)都与类一起存储。

存储是什么意思?驻留或分配在与perm无关的主内存中。为什么你想知道?这很可能取决于您使用的JVM(oracle、OpenJDK,…版本5、6、7…)。对于Java编程来说,应该安全地假设没有区别。对于任何疯狂的面试官来说都是如此。简单地说,heap和stack就足够了。类定义存储在PermGen中,因为嵌套类(内部静态)被视为普通类,所以它们也应该存储在那里。属于类的内部类和局部类不会自然地存储在不同的空间中。我不能为你提供一个证明,但永久一代可能是正确的地方。这适用于Java,您所说的存储是什么意思?驻留或分配在与perm无关的主内存中。为什么你想知道?这很可能取决于您使用的JVM(oracle、OpenJDK,…版本5、6、7…)。对于Java编程来说,应该安全地假设没有区别。对于任何疯狂的面试官来说都是如此。简单地说,heap和stack就足够了。类定义存储在PermGen中,因为嵌套类(内部静态)被视为普通类,所以它们也应该存储在那里。属于类的内部类和局部类不会自然地存储在不同的空间中。我不能为你提供一个证明,但永久一代可能是正确的地方。这适用于Java,它意味着无论封闭类是否具有非静态成员,非静态类都存储在堆区域中?无论该类是否具有静态、内部或匿名的封闭类,这都没有任何区别。我不明白你为什么要问,或者你认为这会有什么不同。很简单。不要把不复杂的事情复杂化。你只需要知道我回答的第一句话。忘掉其他一切。这意味着无论封闭类是否有非静态成员,非静态类都存储在堆区域中?无论封闭类是否有静态、内部或匿名的封闭类,这都没有任何区别。我不明白你为什么要问,或者你认为这会有什么不同。很简单。不要把不复杂的事情复杂化。你只需要知道我回答的第一句话。忘掉一切。