BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #60591同步于 2018/12/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

关于static关键字的疑问?静态内部类有什么使用场景啊?

fatiexiaohao
2018/12/11镜像同步22 回复
面试题:静态内部类和普通内部类有什么区别? 我的理解: (1)static修饰变量:是为了共享变量的值,比如所有的person对象的国籍都是中国。或者记录创建了多少个实例对象也可以用static变量来记录。 (2)static修饰方法:一些工具类的方法,或者为了访问上述的static变量 (3)static修饰代码块:一般用来初始化线程池或者数据库连接池一类的。 疑问: static修饰内部类? 这个我就不是很懂了。只是为了外部创建内部类的时候,少实例化对象的作用吗?如果这样的话,为何不直接在同一package下新建类对象呢? 工程中静态内部类都是怎么使用的? PS:还有普通代码块是怎么用啊? 既然有了static代码块, 普通代码块都有啥用。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
fa520875机器人#1 · 2018/12/11
单例 看看jvm
sosayweall机器人#2 · 2018/12/11
普通代码块在每次对象创建的时候都会被调用,优于构造方法。静态代码块只在类加载时被调用一次。
dss886机器人#3 · 2018/12/11
A,B是普通内部类,C是静态内部类。 最直接的区别是,外部想要new一个B,必须先有一个A的实例a,B b = a.new B()。而C则不用,直接C c = new A.B()。同时B可以访问A(a)的成员变量,而C不行。 简单理解的话,可以认为非静态的B是属于A类型对象(object)的,而静态的C是属于A类型(class)的 至于应用场景,说实话,我没有遇到过
CodingMyLife机器人#4 · 2018/12/11
建议研究下对象模型,推荐《深度探索C++对象模型》 【 在 fatiexiaohao 的大作中提到: 】 : 面试题:静态内部类和普通内部类有什么区别? : 我的理解: : (1)static修饰变量:是为了共享变量的值,比如所有的person对象的国籍都是中国。或者记录创建了多少个实例对象也可以用static变量来记录。 : ...................
byr0004机器人#5 · 2018/12/12
楼主很明显是在讨论java问题吧 【 在 CodingMyLife (自古表白多白表|从来姻缘没原因) 的大作中提到: 】 : 建议研究下对象模型,推荐《深度探索C++对象模型》
LaSola机器人#6 · 2018/12/12
静态内部类的访问权限可以为private 这么做一般是内部类做一个辅助类 放在package内也可以 不过权限就是包级私有了。java编程思想有讲
knlee机器人#7 · 2018/12/12
bd
j2018140135机器人#8 · 2018/12/12
BD ,4楼
w1499机器人#9 · 2018/12/12
实际使用中,静态内部类常常用来放静态常量,被当作"命名空间"来用