1.重载和重写的区别
- 重载:发生在同一个类中,方法名必须相同,参数类型不同,个数不同,顺序不同,方法返回值不同和访问修饰符不同,发生在编译时。
- 重写:发生在父子类中,方法名,参数列表必须相同,返回值小于等于父类,抛出异常小于父类,访问修饰符大于父类;如果父类方法访问修饰符为private则子类就不能重写该方法。
2.面向对象的三大基本特性
- 封装
- 多态
- 继承
3.自动装箱和拆箱
- 装箱:基本类型的变量直接赋给对应包装类变量
- 拆箱:与之相反
4.== 与 equals 重要
- == 基本数据类型比较的是值,引用数据类型比较的是内存地址
- equals判断两个对象是否相等;A:类没有覆盖equals方法,则通过equals比较该类的两个对象,等价于通过 == 比较;B:类覆盖了equals方法,一般我们都覆盖equals方法来比较两个对象。
public class test1 {
public static void main(String[] args)
{
String a = new String("ab"); // a为一个引用
String b = new String("ab"); // b为另一个引用
String aa = "ab"; // 放在常量池中
String bb = "ab"; // 从常量池中查找
if(aa == bb) // 从常量池中查找
{
System.out.println("aa=bb"); // true
}
if(a==b)
{
System.out.println("a==b"); //false
}
if(a.equals(b))
{
System.out.println("aEQb"); //String中equals重写为比较对象的值
}
if(42 == 42.0)
{
System.out.println("true");
}
}
}
5.final关键字
final关键字主要用在三个地方:变量,方法,类
- 基本数据类型的变量,其数值一旦在初始化之后便不能修改,引用类型的变量,初始化后不能再指向另一个对象
- 修饰类时,表明这个类不能被继承
- 修饰方法,该方法不能被重写
6.总结
- 重载和重写的区别
- 面向对象的三大基本特性
- 自动装箱和拆箱
- == 与 equals 重要
- final关键字