上面两种单利模式写法我觉得没有优劣之分,本质都是一样的,内部类和恶汉式写法都是在在加载的时候就初始化。 不知道大家怎么看?
从加载顺序上来说,这两者确实没有区别。
但是从文件大小以及文件数量上是有区别的。使用内部类的方式,编译的时候会多出来一个内部类的字节码文件,这个字节码文件会随着外部类的加载而加载进jvm。同时,在使用的时候,这样会导致调用链路加长。可能会出现未知风险(写代码原则就是尽量缩短调用链路,以确保服务的可靠性)。
以上个人见解,有误之处,敬请指正!
最佳答案 2020-03-24 17:15
从加载顺序上来说,这两者确实没有区别。
但是从文件大小以及文件数量上是有区别的。使用内部类的方式,编译的时候会多出来一个内部类的字节码文件,这个字节码文件会随着外部类的加载而加载进jvm。同时,在使用的时候,这样会导致调用链路加长。可能会出现未知风险(写代码原则就是尽量缩短调用链路,以确保服务的可靠性)。
以上个人见解,有误之处,敬请指正!