向上造型:超类的引用指向派生类的对象,能点出什么,看引用的类型
public 任何类
protect 本类、 同包类、派生类
默认 本类、同包类
private :本类
内存管理:由JVM来管理
1.堆:new出来的对象(包括实例变量)
2.栈:局部变量(包括方法的参数)
3.方法区:class字节码文件(包括静态变量、所有方法)
匿名内部类默认以外面的变量是final的
所有类都有独立的class
接口:
1.是一种引用数据类型 2.由interface定义 3.只能包含常量和抽象类
4.接口不能实例化 5.接口需要被实现 6.一个类可以实现多个接口,
7.先继承后实现8.接口可以继承接口
匿名内部类:
1)匿名内部类不能有构造函数
2)匿名内部类不能定义静态成员、方法和类
3)匿名内部类不能有 public static private protect
4)只能创建匿名内部类的一个实例
5)一个匿名内部类一定是在new后面,匿名内部类必须继承一个父类或者接口
6)因为匿名内部类为局部内部类,所以局部内部类的所有限制都对其有效
break、continue和return有什么区别
break:用于直接强行跳出当前循环,不在执行剩余代码
continue用于停止当前循环,回到循环起始处,进入下一次循环操作
return:跳转语句,返回值,可以使程序控制返回到调用方法的地方
final finally finalize有什么区别
1)final用于声明属性,方法和类;属性不可变,方法不可覆盖和类不可被继承
被final修饰的变量必须被初始化。
①在定义的时候初始化
②final成员变量可以在初始化块中初始化
③静态final成员变量可以在静态初始化块初始化。
④在类的构造器中初始化,但静态final成员final成员变量不可以再构造函数中初始化
一个类不能既被声明为abstract又被声明为final。
2)final作为异常处理的一部分,他只能try/catch语句中,用于需要释放资源
3)finalize是Object类的一个方法,垃圾回收器执行时会调用被回收对象的finalize()方法,可以覆盖此方法来实现对其他资源的回收,例如关闭文件等