1.重载: overload
在同一个类中,一组“同名”的方法,但参数不同(个数,类型,顺序)
2.重写:overrode 抽象关系中 tostring
发生在子类中,是对父类中的方法进行”覆盖“
方法名和参数必须与父类中的方法保持一致
3.==与equals()的区别
1.==是关系运算符,equals()是Object类中的定义的方法
2.基本数据类型:使用==比较值,无法使用equals()
3.引用数据类型:使用==比较内存地址:如果没有重写equals(),
4. 仍然调用的是Object父类的equals()方法
5. 则比较的是内存地址:
6.如果重写equals()方法,则比较的是值
final关键字
使用的位置:
1.用于声明常量:基本数据类型的常量不允许修改值
引用数据类型的常量不允许重写分配内存的地址
2.用于声明方法(最终方法),该方法在子类中不重写,在当前类中允许重载
3.用于声明类(最终类),该类不允许子类继承
Static关键字:
使用static关键字修饰的方法的调用方式
调用方式1:如果是在当前类的static方法中,则直接调用
调用方式2:如果是在其他类的static中,则需要通过类名.方法()调用
备注1:普通方法(没有使用static关键字修饰的方法)允许调用static修饰的方法
备注2: static修饰的方法(静态方法)不允许调用普通方法
static关键字修饰的静态代码块
执行顺序
静态代码块(先父类、再子类)=>父类的构造代码块=>父类的构造方法=>子类的构造代码块=>子类构造方法
面向对象:基于“类”和“对象”的“组件化”编程思想,
核心思想包括:封装、继承、多态
封装:隐藏代码实现细节,提高简洁性
继承:代码的复用,通过定义父类,子类在父类的基础.上进行扩展(数据、功能)
多态:一个类型(父类)可能存在多种类型状态(不同的子类), 让程序实现更加灵活
(一个父类的引用,可以指向任意子类对象)
拼接字符串
String.join()方法:将多个字符串元素使用指定字符串,拼接成完整字符串
String.format()方法:将多个数据元素按照指定格式,拼接成完整字符串
replace()方法使用字符串进行匹配
replaceAll()方法使用"正则表达式"进行匹配
String:"不可变"字符串
StringBuilder:"可变"字符串
StringBuffer:"可变"字符串//相同点:
1.都是可变字符串,都继承AbstractStringBuilder父类
区别点:
StringBuilder:线程不安全(每个方法没有加synchronized锁),性能好
StringBuffer:线程安全(每个方法都加synchronized锁),性能差
字符串的查找搜索
index0f()方法: 从原字符串中查找目标字符串,返回第一次出现的位置
lastIndex0f()方法: 从原字符串中查找目标字符串,返回最后一次出现的位置
contains()方法: 判断原字符串中是否存在目标字符串
startsWith()方法: 判断原字符串是否以目标字符串开头
endsWith()方法: 判断原字符串是否以目标字符串结尾
switch结构支持的数据类型包括:
byte\short\int\char\String\枚举
static关键字 :
静态方法、静态代码块、静态成员变量、静态内部类