小本本
- this,xx代表的是本类成员变量(this说白了就是这里)
super.xx代表的是父类中的变量
- 继承提高了代码的复用性,是多态的前提
- 静态不能直接访问非静态
- java不支持多继承,接口可以
- 抽象方法:无方法体
抽象类:含有抽象方法的类
- 某个接口中有一个方法,A和B两个类都继承了接口中的一个方法。
现在接口中需要添加一个新的方法,但是添加方法,A和B都需要再重写方法,他们会受到影响,因此需要使用Default关键字。
接口中填写public default void xxx(){},继承他的类可以不用重写默认方法。直接在主方法的中调用即可。
[注] default是在接口中写的,在实现类中重写不需要default
- 多态指的是对象:小明这个人,不是类。
- 左父右子,不能反过来
父类和子类有相同方法,最后结果显示子类方法。因为new的是子,子类重写后有该方法,若子类没有重写该方法,则向上查找到父类,显示父类方法。
- 只有方法才能覆盖重写,成员变量不可以
- 成员变量:编译看左边,运行还看左边
成员方法:编译看左边,运行看右边
- 局部变量:方法的内部还有方法的参数
- .var
- 为什么要用遍历?有的集合有索引,可以使用get直接获取,而有些只能通过遍历取出元素
- equals没有重写比较的是两个对象的地址值
- 在标准类中加上tostring方法,有利于我们看到运行结果,否则显示的是地址值
- 一个类没有重写tostring方法,则打印的是对象的地址值;若重写,则按照重写的方式进行打印
- ==:基本数据类型:比较值
引用数据类型:比较的是地址
- List:有序,存储顺序相同;有索引;允许重复元素;
Set:适合增删,不允许重复;无索引,不能用普通的for循环遍历;
- List子类ArrayList底层是动态数组,LinkedList底层是双向链表
Set的子类HashSet底层是哈希表,LinkedHashSet底层是哈希表(数组+链表/红黑树)+链表
- 哈希值:一个十进制整数,由系统随机给出(对象的地址,是一个逻辑地址,是模拟出来的地址,不是对象的实际物理地址)
- Set集合在调用add()方法时,add()方法会调用元素的HashCode方法和equals()方法来判断元素是否重复。
- 创建对象在堆内存,方法在栈内存中。
- 编译异常:try,catch或者throws处理。运行异常:交给JVM处理
- input:输入(读取)<b字符流最适合操作中文,但并不意味着字节流就无法操作中文。r>output:输出(写入)
- 单例和多例:blog.csdn.net/tanwenfang/…
- 基本数据类型,==比较的是数值。引用类型==比较的是地址值。但是由于String有字符串常量池,因此str1="ac",str2="ac". str1==str2是true,因为str1和str2都是引用同一个字符串常量池。