欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

非静态内部类中为什么不能拥有静态成员?

发布时间:2025/5/22 编程问答 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 非静态内部类中为什么不能拥有静态成员? 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

答案来自:https://zhidao.baidu.com/question/534600874.html,其实我是草草啦 的回答。

 

java类加载顺序,首先加载类,执行static变量初始化,接下来执行对象的创建,如果我们要执行代码中的变量int a 初始化,那么必须先执行加载外部类,再加载内部类,最后初始化静态变量 a ,问题就出在加载内部类上面,我们可以把内部类看成外部类的非静态成员,它的初始化必须在外部类对象创建后以后进行,要加载内部类必须在实例化外部类之后完成 ,java虚拟机要求所有的静态变量必须在对象创建之前完成,这样便产生了矛盾。

而java常量放在内存中常量池,它的机制与变量是不同的,编译时,加载常量是不需要加载类的,所以就没有上面那种矛盾。

其实常量使用是很随意的,内部类,静态内部类,匿名内部类就乱了。
但了解JVM特性你就知道有些地方为什么不让你这么用了。

总结

以上是生活随笔为你收集整理的非静态内部类中为什么不能拥有静态成员?的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。