重写
对于一个方法而言: 区分方法 通过方法名找方法 通过参数列表来确定方法
- 方法重写:
- 发生继承关系、实现关系 父类不满足子类的需求 子类重写父类中的方法
- 什么情况下会发生重写?
- 1:发生继承
- 2:方法名同名
- 3:参数列表要一模一样 (顺序 个数 类型)
- 4:子类的返回值类型<=父类的返回值类型(引用) 基本类型一模一样
- 5:子类的修饰符>=父类的修饰符 (父类中的修饰符不能是private)
- 6:子类抛出的异常<=父类抛出的异常 (理解:可以认为任意一个方法都会对外抛出运行时异常)
- 参一反小修大异小
字符串
String:
- 字符串: 一组字符序列 (不可变的串)
- 创建String对象:
- new String();
- new String(“abc”);
- “love”;
- new String(buf,2,2);//通过字节数组创建
- StringBuffer
- StringBuilder(jdk1.5之后才有的
StringBuffer :
- 之所以能够可变的原因,底层就是一个字符数组,动态数组。
StringBuilder:
StringBuilder和StringBuffer 都继承了AbstractStringBuilder StringBuffer效率低于StringBuilder StringBuffer安全性要高于StringBuilder 一般情况下使用StringBuilder jdk9之后 String中存储数据通过byte数组存储 + 变量 jdk中对于String存储时的内容消耗极大降低
包装类
包装类:
- 8大基本数据类型 -> 8个包装类
- byte->Byte
- short->Short
- char ->Character
- int ->Integer
- long ->Long
- float->Float
- double->Double
- boolean->Boolean
- jdk12 Integer中的所有构造器都过时 通过valueOf方法获取int对应的Integer对象
- String->int Integer.parseInt();// 可能报异常
- int ->String String.valueOf()