(1)多态的三种体现:继承,重写,父类引用指向子类对象。
(2)jdkJava开发工具,jreJava运行时环境,jre包括jvm,和lib.。jdk包括jre和Java工具。
(3)==比较栈中的值,基本数据类型比较值,引用类比较堆中的内存地址。
equals:一般会重写,String类重写了equals方法。
hashcode指哈希码,获取对象在哈希表中的位置,可以快速找到所需要的对象。
当对象加入hashset时会先计算对象的hashcode值,找出对应的位置,然后判断该位置是否有值,有值会调用,equals方法,比较两对象是否相等,相等则不会加入,不等会重新散列到其他位置。
两对象相等,则hashcode一定相等,equals为true。
hashcode相等,则对象不一定相等。
重新equals方法,必须同时重写hashcode方法。
hashcode是生成对象在堆上的散列值。如果不重写hashcode,两个对象的hashcode是不会相等的。
(4)final 修饰成员变量必须赋值,修饰局部变量,声明时可不赋值,使用前必须赋值。
final修饰引用变量时,引用变量的值可修改。
局部内部类,匿名内部类,只能访问局部final变量。因为内部类和外部类属于同一级别,当方法执行完后,方法和局部变量都会销毁,内部类不一定销毁,这时如果内部类访问了局部变量,会复制一个局部变量的副本,自己访问。为解决变量值变化的问题,局部变量必须有final修饰。
(5)重载 方法名必须相同,参数不同,返回值和修饰符可不同。
重写 方法名和参数列表相同
返回值范围小于父类,抛出异常范围小于父类,
访问修饰符大于父类,
父类方法的访问修饰符为private,则子类 不能访问。
(6)接口和抽象类
接口的成员变量只能是private static final
抽象类的成员变量可以是各种类型。
接口可以实现多个,抽象类只能继承一个。
接口里面都是抽象方法,抽象类里面可以有其他普通函数。
接口是相同行为的集合,是行为抽象,只约束了行为的有无,没有限制行为的实现。类似like
抽象类是具有相同行为里有相同实现的子类派生出的抽象类,是类本质的抽象,可以避免子类重复的相同实现,实现了代码复用。抽象类不能实例化,一旦实例化,子类特有的方法则不能访问。类似is的作用。
网友评论