小本本

132 阅读3分钟
  1. this,xx代表的是本类成员变量(this说白了就是这里)

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