社区
Java SE
帖子详情
java 中非静态内部类为什么不能有静态方法
guoziyanios
2017-02-24 05:36:39
java 中非静态内部类为什么不能有静态方法
...全文
135
2
打赏
收藏
java 中非静态内部类为什么不能有静态方法
java 中非静态内部类为什么不能有静态方法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
风尘沙郎
2017-02-24
打赏
举报
回复
厉害了
jiajing1990_
2017-02-24
打赏
举报
回复
因为非静态内部类在程序加载外部类时、并不会被加载、而静态方法是在类加载时就会被加载到内存中、所以类也必须是静态的才行
4-3非访问控制、接口、内部类.pptx
4-3非访问控制、接口、内部类.pptx
java
中非
静态内部类
不能
有静态代码块、
静态方法
、静态变量?
非
静态内部类
相当于外部类中的非静态成员变量,而如果外部类需要调用非静态成员变量就需要先实例化才可以,如果非
静态内部类
中有
静态方法
块,那么又可以在加载类的时候提前加载,不需要考虑外部类的实例化,所以有矛盾,所以不可以。为什么非
静态内部类
中可以有静态常量?(static final)因为常量存放在常量池中,在编译时就已经加载进去了,所以不需要考虑是否静态。...
Java
中非
静态内部类
为什么
不能
有static属性,而可以有final static常量(编译期常量)
Java
中非
静态内部类
为什么
不能
有static属性 上面出错的原因: 首先我们要了解 对于JVM在类加载期间,初始化实例对象前需要完成对静态变量的初始化。 内部类静态变量d在外部类进行加载的时候则进行初始化(记住这里内部类还并没有被加载,内部类都还没加载凭什么加载其内部类中的静态变量,这个时候看1中所描述的,这样就存在矛盾)。 为什么非
静态内部类
又可以存在final static修饰的(运行...
java
中非
静态内部类
造成内存泄漏,替换成静态为什么就不会内存泄漏
java
中非
静态内部类
造成内存泄漏,替换成静态为什么就不会内存泄漏(面试中遇到) 首先我们知道非
静态内部类
会持有外部内部类的隐式引用参看 非
静态内部类
中线程生命周期不可控,能否正常回收完全由线程的生命周期决定。如果线程是永久运行的,那么将永远无法释放,因为在
Java
中线程是垃圾回收机制的根源,在运行系统中DVM虚拟机总会硬件持有所有运行状态的进程的引用,结果导致处于运行状态的线程将永远不会被回收,导致内存泄漏。 当替换成
静态内部类
时,就不再持有外部类的隐式引用,当然就不会导致内存泄漏,如果需要引用外部类的实
为什么
java
中非
静态内部类
不能
有静态变量,却可以定义静态常量?
       
java
中的静态域定义为static,每个类只对应一个这样的域,也就是说对于每个类的实例将共享这个静态域。
java
中的静态域在类加载的时候初始化。        这也就是为什么
java
中非
静态内部类
不能
有静态变量,却可以定义静态常量。 class Employee { /
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章