摘要:最近重温了《Thinking in Java》,发现了一个让我为之兴奋的知识漏洞,必须得分享一下。 上一篇的《Java类初始化的过程》的随笔中,那个初始化顺序并不完整。初始化的实际过程是: 在其他任何事物发生之前,将分配给对象的存储空间初始化成二进制的0; 如上一篇的《Java类初始化的过...
阅读全文
摘要:是变量的作用域的问题,因为匿名内部类是出现在一个方法的内部的,如果它要访问这个方法的参数或者方法中定义的变量,则这些参数和变量必须被修饰为final。因为虽然匿名内部类在方法的内部,但实际编译的时候,内部类编译成Outer.Inner,这说明内部类所处的位置和外部类中的方法处在同一个等级上,外部...
阅读全文
摘要:在Java中, 当一个类被调用的时候,它的初始化过程是怎么样的呢? 当一个类被实例化的时候,它的初始化过程又是怎样的呢? 为什么static方法不能未经对象就调用非static方法? 下面我们通过例子来找出答案。 当该类没有父类时 测试代码: public class ClassLo...
阅读全文
摘要:三者的定义:组合:在新类中new 另外一个类的对象,以添加该对象的特性。继承:从基类继承得到子类,获得基类的特性。代理:在代理类中创建某功能的类,调用类的一些方法以获得该类的部分特性。使用场合:组合:各部件之间没什么关系,只需要组合即可。like组装电脑,需要new CPU(),new RAM(),...
阅读全文
摘要:protect权限:继承此方法所属的类,即可享有调用该方法的权限与此类同在一个路径包下的类也可以调用此方法(相当于默认包权限) 继承(extends): 类A被类B继承,new B()的时候,A的构造方法会被调用。 1 public class ExtendsTest { 2 3 ...
阅读全文