
Java 那些事儿
本着刨根问底的精神,深入分析日常开发中不太注意到的 Java 小问题,例如为什么内部类中用到的局部变量必须是final类型。
feelang
十年+编程经验,精通多种编程语言和框架,热衷科普,希望帮助别人透过现象看本质。
展开
-
怎样在静态方法中使用 synchronized
synchronized 的实现方式synchronized 的类型可以分为两种:synchronized methodsynchronized block两者的实现方式是不一样的,jvm 规范中写道,编译后的 synchronized method 会有一个 ACC_SYNCHRONIZED 的 flag,也就是说当 jvm 的方法调用指令(the method invocation ins原创 2019-12-05 17:06:35 · 7616 阅读 · 2 评论 -
为什么要使用内部类?
翻译自《Thinking In Java》我们经常会在一个类中定义一个内部类(inner class),这个内部类可以继承也可以实现接口,因为有一个隐式的引用(explicit reference)指向外部类(outer class),所以我们可以直接访问并操作外部类。因此可以认为内部类是外部类的一个窗口。An inner class provides a kind of windo...翻译 2014-09-19 17:36:02 · 3947 阅读 · 0 评论 -
怎样继承一个内部类
定义一个内部类时,这个内部类会有一个隐式引用(implicit reference)指向外部类的实例。例如下面的代码:class WithInner { class Inner {}}其实,内部类Inner默认会有一个带参数的构造函数,我们通过反射来看一下。import java.lang.reflect.Constructor;import java.lang....原创 2014-09-19 21:06:28 · 9084 阅读 · 1 评论