数据类型:基本数据类型数值类型:byte[1]、short[2]、int[4]、long[8]存储整数字符类型:char[2]存储单个字符“a”或单个汉字布尔类型:boolean[1]存储真假引用数据类型类(如:String)接口数组浮点数及其存储形式浮点数=符号位+指数位+尾数位字符的本质typeisinteger定义时注意使用单引号,如果使用双引号则表示字符串例:charc='a',输出为97,即a对应的ASCII码的值;charc1=97,outputis97InheritedmemorymapjavadynamicbindingFixedmechanism当调用对象是方法时,方法会绑定到对象的内存地址/运行类型。调用对象的属性时,没有动态绑定。声明位置和使用位置如下:如果注解了B类的sum方法,则输出结果为30(因为调用的getI方法是B类中的方法,而不是A类中的方法)如果是sunm1方法B类的注解,输出结果为20,因为i是一个没有动态绑定机制的属性,在类中静态加载时初始化静态代码块。静态代码块的作用是初始化类,随着类的加载而加载,只会加载一次。如果是普通代码块,则执行一次,不创建对象。加载类时:创建对象实例时(新建)b.当创建子类的对象实例时,父类也会被加载c.当使用类的静态成员(静态方法、静态属性)普通代码块时,创建对象实例时会隐式调用,创建时调用一次。如果使用了类的静态成员,则不会执行普通代码块,会执行静态代码块创建对象,按照类调用a的顺序。静态代码块和静态属性初始化b.调用普通代码块和普通属性初始化c。调用构造函数构造函数前面其实隐含了super()和调用普通代码块。静态相关代码块和属性初始化在类加载时执行,因此它们优先于构造函数和普通代码块。代码块被执行。下面看一下子类对象的创建(继承关系),它们的静态代码块、静态属性初始化、公共代码块、公共属性初始化、构造方法的调用顺序如下①静态代码块和静态父类属性(优先级②静态代码块和子类静态属性(优先级相同,按定义顺序执行)③公共代码块和父类普通属性初始化(优先级相同,按定义顺序执行)执行)④父类构造方法⑤子类普通代码块和普通属性初始化(优先级相同,按定义顺序执行)⑥子类构造方法静态代码块只能调用静态成员(静态方法、静态属性),普通代码块可以调用任意成员内部类内部类的分类:定义在外部类的局部位置(比如在方法中):1)局部内部类(带类名)2)匿名内部类(不带类名,key)是定义在外部类的成员位置:1)成员内部类(无静态修饰)2)静态内部类(有静态修饰)
