== 和 equals 方法的区别
1.针对基本数据类型 ==是比较数值是否相等
2.针对引用数据类型 ==是比较引用地址是否相等
3.equals方法是object类的方法 它的底层实现是使用== 比较地址值
4.所有的类都可以重写equals()方法
举例:String类中重写equals()方法,是比较字符串的内容是否相同
Java只支持单继承
final
1.final修饰的类不能被继承
2.final修饰成员属性是常量(不能重新赋值)
常量的命名规则:全部大写 如果有多个单词组成 中间使用下划线隔开
常量是存储在常量池中
3.final修饰的方法不能被重写
static
1.static 修饰成员变量
①.static修饰的成员遍历是一个类变量
②.它随着类的加载而产生,无论将来创建多少个对象,类变量只保留一次
③.访问静态成员属性 通过类名.属性名
④.所有的对象都可以共享静态的成员属性
⑤.存储位置:存在方法区中
2.static 修饰的成员方法
* ①.static修饰的成员方法是一个类方法
* ②.访问静态方法: 类名.方法名
* ③.在静态方法中只能访问静态成员(如果想要访问非静态成员,只能通过实例化的对象访问)
* ④.一般工具类中的方法都会声明成静态方法
3.static 代码快
* ①.静态代码快 static {}
* ②.随着类的加载而加载,只会执行一次
类型转化
1.基本数据类型转化
* ①.自动类型转化:将容量小的数据类型转化为成容量大的数据类型
* byte-->char-->short-->boolean-->int-->float-->long-->double
* ②.强制类型转化:将容量大的数据类型转化为容量小的数据类型
* 2.引用数据类型转化
* ①.向上转型: Person p = new Man();
* ②.下转型(强制类型转化) Man man = (Man) p;
* ③.如果两个类毫无关系,是不能进行转化 Man man = new Women();
* ④.instanceof:用于比较类型
抽象类
1.什么是抽象类?
如果一个类不与具体的事联系,而只是表达一种抽象的概念,仅作为其派生类的一个基类。
-- 抽象类作为父类,主要是定义功能而已,具体的实现交给派生类。
2.语法:
abstract class 类名{}
3.规则
①.抽象类可以包含抽象方法也可以包含非抽象方法
②.抽象类不能被实例化
③.抽象类不能被继承
④.普通类中不能定义抽象方法
⑤.有抽象方法的类一定是抽象类
4.抽象方法
①.语法:abstract 方法名();
②.抽象方法没有方法体
③.子类必须全部实现父类中所有的抽象方法。
操作数组的工具类
* 可变参数
* ①.语法:数据类型....可变参数名称
* ②.可以接受任意个参数(0个或者多个或者一个数组)
* ③.如果形参列表中既有普通的参数 也有可变参数,那么可变参数一定在最后声明
上转型和下转型
1.上转型:将子类对象交给父类引用,可以自动转化
2.将父类对象交给子类引用,需要做强制类型转化
一些小知识点:
1.-------instanceof:判断类型是否匹配
2.-------.lastIndexOf():返回最后一个对应字符对应的索引
3.-------.substring() :返回对应下标后的字符串
type = “MP4”