相同:
都不能创建对象
都可以定义抽象方法,并且一定要在子类中重写
不同:
关键字不同:abstract 和 interface
接口中的所有方法都是抽象方法
抽象类中既可以有抽象方法也可以有普通方法
接口中的方法可以给任意权限,接口中的方法权限只能是public
抽象类只能是单继承,而接口可以多实现
重写的规则
必须有继承关系,子类重写父类的方法
- 方法名,形参列表必须和父类保持一致
- 返回值类型要么相同,要么子类方法的返回值类型是父类方法返回值类型的子类
- 访问权限修饰符要么相同,要么子类访问权限修饰符大于父类
- 方法异常的抛出,要么相同,要么子类方法抛出的异常比父类重写方法抛出的异常更小或相同
-- 方法的重写和重载都是实现多态的方式,区别在于前者是实现的运行时多态,后者是实现的编译时多态.
String 字符串常量不可变,使用字符串拼接时会开辟新空间
stringBuffer 字符串变量可变,线程安全,字符串拼接直接在字符串后追加
StringBuilder 字符串变量,可变,非线程安全的,字符串拼接直接在字符串后追加
3.1.StringBuffer 执行效率高于 StringBuilder 高于String
3.2. String是一个常量,不可变的,所以对于每一次 += 赋值都会创建一个新的对象,StrignBuffer 和 StringBuilder 都是可变的,当金星字符串拼接时采用 append 方法, 在原来的基础上进行追加,所以性能上比String要高
StringBuffer 是线程安全的 而StringBuilder时线程非安全的,所以StringBuilder 的效率高于StringBuffer
3.3对于大数据量的字符串的拼接,采用StringBuffer , StringBuilder.
单例设计模式就是只能返回一个实例.
单例模式所具备的特点:
1.私有化构造函数
2.私有的静态的全局变量
3.公有的静态方法
懒汉式;
线程安全懒汉式;
饿汉式;
NullPointerException 空指针异常
ClassCastException 类型强制转换异常
IllegalArgrumentExceotion 传递非法参数异常
ArithmeticException 算术运算异常
IndexOutOfBoundsExxxception下标越界异常
NumberFormartException 数字格式异常
ClassNotFindException 加载请求异常
- 位置: Throw 方法内部 , Throws 方法名之后
- 作用,Throw 抛出异常, Throws 声明异常
- 个数,Throw 一次抛出一个异常 , Throws 可以声明多个异常
final 用于声明属性 , 方法 和 类 , 分别表似乎属性不可变,分别表示属性不可变,方法不可覆盖,类不可以继承
finally 四处理异常语句结构的一部分,表示总是执行,无论是否有异常
finalize 是 Object 类的一个放啊方法, 在垃圾收集器执行的时候会调用被回收对象的此方法可以实现资源回收,释放资源.
- 修饰类 :最终类 , 不能被继承
- 修饰方法: 最终方法 , 不能被冲重写
- 修饰变量: 一旦声明后,就不能改变值.
HashMap允许为空,非线程安全,效率高,在多个线程访问时必须提供外同步
HashMap是Java1.2引进的Mapinterface的一个实现
Hashtable 不允许key 为null值,线程安全,但是效率比较低
HashMap把Hashtable的contains方法去掉了,改成containsvalue 和 containsKey
Hashtable 和 HashMap