1、继承和实现的区别
1、修饰不同 不同的修饰符修饰;实现:implements,继承:extends;
2、数量不同 单继承,多实现。
3、属性不同
在接口中只能定义全局常量(static final),和无实现的方法;而在继承中可以定义属性方法,变量,常量等。
4、调用不同
某个接口被类实现时,在类中一定要实现接口中的抽象方法;而继承想调用那个方法就调用那个方法。
2、String的特性
不变性: 是一个 immutable 模式的对象,不变模式的主要作用是当一个对象需要被多线程共享并频繁访问时,可以保证数据的一致性,线程安全。
常量池优化: String 对象创建之后,会在字符串常量池中进⾏行缓存,下次创建同样的对象时,会直接返回缓存的引用。
final: String 类不可被继承,提⾼了系统的安全性。
3、继承类之间的静态方法、非静态代码块和构造方法之间的执行顺序
父类静态方法-> 子类静态方法->父类非静态方法-> 父类构造方法->子类非静态方法-> 子类构造方法
4、Integer x = 127;Integer z = Integer.valueOf(127);x==z吗
Integer里有cache在-127-128之间都是走缓存池,都会相等,享元模式;
5、与运算(&)、或运算(|)、异或运算(^)
与运算:两个同时为1,结果为1,否则为0
或运算:只要有一个为1,结果为1,否则为0
异或运算:只要两者不一样则为1,否则为0
6、基础数值类型,不通过中间变量,交换两个变量
int a=10,b=20;
a=a^b;
b=a^b;
a=a^b;