方法重载的规则?
方法名一致,参数列表中参数的顺序,类型,个数不同。 重载与方法的返回值无关,存在于父类和子类,同类中。 可以抛出不同的异常,可以有不同修饰符。
方法重写的规则?
参数列表、方法名、返回值类型必须完全一致,构造方法不能被重写;声明为 final 的方法不能被重写;声明为 static 的方法不存在重写(重写和多态联合才有意义);访问权限不能比父类更低;重写之后的方法不能抛出更宽泛的异常
throw 和 throws 的区别?
throw:
throw 语句用在方法体内,表示抛出异常,由方法体内的语句处理。throw 是具体向外抛出异常的动作,所以它抛出的是一个异常实例,执行 throw 一定是抛出了某种异常。throws:
throws 语句是用在方法声明后面,表示如果抛出异常,由该方法的调用者来进行异常的处理。throws 主要是声明这个方法会抛出某种类型的异常,让它的使用者要知道需要捕获的
异常的类型。throws 表示出现异常的一种可能性,并不一定会发生这种异常。
抽象类和接口的区别?
1、接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。
2、类可以实现很多个接口,但是只能继承一个抽象类
3、类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现 抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
4、抽象类可以在不提供接口方法实现的情况下实现接口。
5、Java 接口中声明的变量默认都是 final 的。抽象类可以包含非 final 的变量。
6、Java 接口中的成员函数默认是 public 的。抽象类的成员函数可以是 private,protecte 或者是 public 。
7、接口是绝对抽象的,不可以被实例化(java 8 已支持在接口中实现默认的方法)。抽象类也不可以被实例化,但是,如果它包含 main 方法的话是可以被调用的。
Java 的基础类型和字节大小?
布尔型 boolean 8 位;字节型 byte 8 位; 字符型 char 16 位 ; 短整型 short 16 位;整形 int 32 位; 长整形 long 64 位 ; 浮点型 float 32 位;双精度 double 64 位;