字符串操作:
Stringbuilder :
StringBuilder sb = new StringBuilder();
sb.append(1);
sb,append("assdasdas");
sb.reverse();
sb.length();
String str = sb.toString();
str.substring(2);
str.replace("b","A");
StringJoiner sj = new StringJoiner(",","[","]") 间隔符号 前缀 后缀
sj.add("asda");
sj.toString();
sj.length();
str1 = "asaddasd";
char[] arry1 = str1.toCharArray(); 字符变为字符数组
集合:长度可变 ,可以存储引用类型 基本数据类型(包装类)
创建集合:
ArrayList<String> list = new ArrayList<>();
list.add("asda"); 返回 true 或 false
list.remove("asda");返回 true 或 false
list.remove(0);返回被删除的元素
list.set(1,"aa"); 返回被修改的元素
list.get(1); 查询
list.size();
static 修饰成员方法:静态方法
修饰成员变量:静态变量
特点: 被该类所有对象共享
调用方式:类名调用 对象调用
静态方法中只能访问静态
非静态方法可以访问所有
静态方法中没有this关键字
继承
public class Student extends Person{}
java 只支持单继承,不支持多继承,但是支持多层继承
子类只能访问父类中非私有的成员
构造方法: 非私有:不能 private:不能 能否继承
成员变量 非私有:能 private :能
成员方法 非私有:能 private:不能
虚方法表: 非private 非 static 非final 修饰的
继承中:父类的构造方法不会被子类继承
子类中所有的构造方法先访问父类中大的无参狗杂,再执行自己
子类继承父类的无参构造 super() 有参构造 super(name,age)
多态: 继承时:调用成员变量的特点:编译看左边,运行看左边
继承时:调用成员方法:编译看左边,运行看右边
判断这个对象是不是这个类的: a instanceof Dog
final : 方法: 表明该方法时最终方法,不能被重写
类: 表明该类是最终类,不能被继承
变量: 常量,只能被赋值一次
修饰基本数据类型:记录值不能发生改变
修饰引用数据类型:记录的地址值不能发生该笔那,内部属性值可以改变
权限修饰符的作用范围
static{} 随着类的加载而加载,并且自动触发,只执行一次
抽象方法:abstract 将共性的行为抽取到父类之后。由于每一个子类执行的内容是 不一样,所以再父类中不能确定具体的方法体。该方
法就可定义为抽象方法
public abstract 返回值类型 方法名(参数列表)’
抽象类:如果一个类中存在抽象方法,那么该类就必须声明为抽象类
public abstract class 类名{}
抽象类不能实例化
抽象类中不一定由抽象方法,有抽象方法的类一定是抽象类
可以有构造方法
抽象类的子类:要么重写抽象类中的所有抽象方法
要么是抽象类
接口: 用interface 来定义
public interface 接口名 {}
接口不能实例化
接口实现: public class 类名 implements 接口名{}
接口的子类(实现类)
要么重写接口中的所有抽象方法
要么是抽象类
注意: 接口和类的实现关系,可以是单实现,也可以是多实现
public class 类名 implements 接口名1 ,接口名2{}
注意一:实现类还可以在继承一个类的同时实现多个接口
public class 类名 extends 父类 implements 接口名1,接口名2{}
接口中成员的特点:
成员变量 :只能是常量 默认修饰符:public static final
构造方法:没有
成员方法: 只能是抽象方法 JDK7以前 默认修饰符:public abstract
后面可以有方法体
接口和类之间的关系:
类和类的关系:继承关系,只能单继承、但是可以多层继承
类和接口的关系:实现关系,可以单实现,也可以多实现,还可以在 继承一个类的同时实现多个接口
接口和接口的关系 ,继承关系,可以单继承,也可以多继承
JDK8以后接口中新增的方法:允许在接口中定义默认方法,需要default修饰
作用:解决接口升级的问题
接口中默认方法的定义格式: public default 返回值类型 方法名(参数列表){}
public default void show(){}
注意事项:
默认方法不是抽象方法,不强制重写,但是如果重写,重写时需要请去掉default关键字
如果实现了多个接口,多个接口中存在相同名字的默认方法,子类就必须对该方法重写
接口中的静态方法:public static void show(){}
静态方法只能通过接口名调用
内部类: 内部类表示的事务是外部类的一部分
内部类可以直接访问外部类的成员,包括私有
外部类要访问内部类的成员,必须创建对象
匿名内部类: