一、字符串想等问题:
1.两个值相同的String类变量相等:
String a = "abc";
String b = "abc";
System.out.println(a == b);
结果:true
2.通过拼接得到的String类变量,即使值相同也不相等:
String a = "ab";
String b = "c";
String c = "abc";
System.out.println((a+b) == c);
结果:false
二、print控制台输出的特殊情况:
1.数字+数字+字符(串)输出:
System.out.println(100+5+"c");
结果:105c
数字相加在开头系统会自动相加
2.字符(串)+数字+数字输出:
System.out.println("c"+100+5);
结果:c1005
数字相加不为开头时系统不会自动相加
三、重写(Override)和重载(Overload)的区别
重写是父类与子类的多态表现,重载是一个类的多态表现。
1.重写(Override):
重写是发生在继承之中,子类对于父类方法进行重写(参数列表不变,只对函数体进行修改)。
同时重写方法所抛出的异常必须是父类异常的子类。如:父类为IOException异常,子类所抛出的异常只能为IOException异常的子类不能为Exception。
子类重写方法的访问权限不能低于父类,如父类为public,子类不能为protected。
用final声明的方法不能被重写
用static声明的方法不能被重写但是可以被再次声明
子类父类在同一个包中时,子类可以对父类中所有除了private和final修饰的方法进行重写
不在同一个包中时,子类只能对父类中的public和protected修饰的非final方法进行重写
只有继承了的方法才能被重写
构造函数不能被重写
2.重载(Overload)
同一个类中,方法名相同参数列表不同,返回值可以相同也可以不同,访问修饰符可以不同。每一个重载方法都必须有不同的参数列表。