1、Java中所有的类从根本上都继承自Object类,它是Java中唯一没有父类的类。
2、Object可以接收接口类型
3、内部类可以声明为public或private。当内部类声明为public或private时,对其访问的限制与成员变量和成员方法完全相同。
4、内部类作用:
a、内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。
b、内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以相互访问。但外部类不能访问内部类的实现细节。
c、匿名内部类适合用于创建那些仅需一次的类。
5、使用static定义的内部类就是外部类(类内部类 或 静态内部类)
静态内部类可以包含静态成员和非静态成员。静态内部类不能访问外部类的实例成员,只能访问外部类的类成员。静态类部类的实例方法也不能访问外部类的实例成员,只能访问外部类的静态成员。
外部类的静态方法、静态初始化可以使用静态内部类来定义变量、创建对象等。
外部类不能直接访问静态内部类的成员,但可以使用静态内部类的类名作为调用者来访问静态内部类的类成员,也可以使用静态内部类对象作为调用者来访问静态内部类的实例成员。
6、内部类不仅可以在类中定义,也可以在方法中定义。
7、匿名内部类
new父类构造器 (参数列表) | 实现接口 ()
{
//匿名内部类的类体部分
}
匿名内部类不能是抽象类,所以必须要实现它的抽象父类或者接口里面所有的抽象方法。
8、instanceof关键字
用instanceof判断一个类是否实现了某个接口,也可以判断一个实例对象是否属于一个类。
对象 instanceof 类(或接口)
9、匿名类使用注意事项
a、使用匿名内部类时,必须继承一个类或者实现一个接口,但两者不可兼得,同时也只能继承一个类或者实现一个接口。
b、匿名内部类中是不能定义构造函数的。
c、匿名内部类中不能存放任何的静态成员变量和静态方法。
d、匿名内部类为局部内部类,所以局部内部类的所有限制同样对匿名内部类生效。
e、匿名内部类不能是抽象的,必须能实现继承的类或者实现继承的接口的所有抽象方法。
10、深入理解final的好处
(1)、final关键字提高了性能。JVM和java应用都能缓存final变量。
(2)、final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
(3)、使用final关键词,JVM会对方法、变量及类进行优化。
(4)、创建不可变类要使用final关键词。不可变类是指它的对象一旦被创建了就不能被更改了。String是不可变类的代表。
11、装箱操作:将基本数据类型变成包装类,利用各个包装类的构造方法完成;
拆箱操作:将包装类变成基本数据类型,利用Number类的xxxValue()方法完成。
12、将字符串变为数值型数据时要注意,字符串的组成必须全部由数字组成。
13、Java反射机制主要提供以下功能:
在运行时判断任意一个对象所属的类;
在运行时构造任意一个类的对象;
在运行时判断任意一个类所具有的成员变量和方法;
在运行时调用任意一个对象的方法。