1``` this关键字: this:代表本类对象的引用
super关键字: super:代表父类存储空间的标识(可以理解为父类对象引用) this和super的使用分别
成员变量: this.成员变量 - 访问本类成员变量 super.成员变量 - 访问父类成员变量
成员方法: this.成员方法() - 访问本类成员方法 super.成员方法() - 访问父类成员方法
构造方法: this(…) - 访问本类构造方法 super(…) - 访问父类构造方法 共同点:都可以访问变量,方法与构造器.在构造器中使用时都必须放在构造器的第一行 区别:this负责调用本类中的变量构造器和方法,super负责调用父类中的变量构造器及方法
Java重写与重载的区别( 先分别说重写与重载的概念 重写主要发生在继承/实现关系中,接口中的行为被实现时,其内部的所有行为都需要重写 继承关系中,如子类的行为与父类有一致的但输出内容不一致时,需要进行重写 而重载是同类中的方法名一致,参数顺序不同,参数类型不同,参数数量不同的方法即构成重载 */ 再说区别 就在我自己看来,重写与重载没有任何相似之处,大抵就是都有个重字.首先重写只发生在继承关系上没有 继承就没有重写,而重载大多是出现在有参数的方法或者构造器中,与继承无关.因此重写跟重载是概念上的不同
解释继承的概念 承是Java中面向对象的三大特征之一,有封装才有继承 而继承的存在是为了解决封装中出现的相同代码的重复性,提高代码的复用率和扩展性
多态的好处就是解耦合,当有两个子类继承父类的时候,使用多态, 在需要更改子类对象的时候,只需要改动子类对象,而不需要改动父类对象
什么是闭包以及如何解决闭包 闭包是发生在lambda表达式里,需要访问外界所有方法体内的变量时,都被默认绑定final 将变量转换为引用数据类型,即可以将变量放进数组中
什么是构造器引用以及方法引用,使用条件是什么 造器引用:构造器引用与函数式接口参数列表一致,只能在构造器对象里使用lambda表达式 方法引用:把已经有的方法拿过来用,当作函数式接口中抽象方法的方法体,被引用方法的形参和返回值需要跟抽象方法一致
请说出冒泡排序以及二分查找的思路 冒泡排序:从第一个元素开始比较相邻数组中的元素,如果小于相邻元素则进行调换 如果大于相邻元素,则用相邻元素接着比较下一个相邻的元素.如此反复比较直到比较出 最小的那个元素.然后将最小的元素排除,重新按此方法开始比较出第二小元素,直到将 元素全部比较完毕,按逆序排序.
说出异常继承体系结构以及什么是非受检异常?什么是受检异常? 异常的体系的顶级父类是Throwable ,它有两个子类,一个是error错误 一个是exception,error下主要有栈溢出、和OOM,exception主要分为编译时异常和 运行时异常
throw 和 throw 的区别: throws:用在方法上的,目的是为了告诉调用该方法有可能会发生声明异常 step1.在方法上声明异常,如果是运行时异常可以省略 step2.要求方法调用者自己处理异常 step3.如果方法调用者没有处理,就会转交给虚拟机处理
throw:手动创建异常对象并抛出 throw new 异常();
两者对比:1.throw在方法体内使用,throws在方法声明上使用 2.throw后面接的是异常对象,只能接一个,throws后面接的是异常类型 可以接多个类型,用逗号隔开
说一下Java集合继承结构 iterable是单列集合的顶级父类,其方法下有foreach 和获取iterator collection 继承iterable 接口的一个接口类 其方法有增删改查的方法行为 以及继承父类的一些方法 collection 被list可重复集合 和 set不可重复集合实现 list是一种可重复,有索引,有序的一类集合 list 下有子类ArrayList 和 LinkList Arraylist 是一种访问快 ,增删慢的底层数组集合 linklist 是一种访问慢 ,增删快的底层链表结构的集合
IdentityHashMap 是一种可重复map集合
set是一种存取无序,不可重复数组的无索引集合 set 下有子类hashset 和 treeSet
什么是语法糖? 语法糖是 遍历集合对象时用的是包裹的是迭代器iterator 遍历数组对象时用的是包裹的 for 循环