11.this和super的区别?
this指向的是自身的一个对象,代表对象本身,super指向的是自己的一个超类对象,这个超类对象是最近的一个父类.
this()调用的是本类其他构造方法,super()调用的是父类的构造方法.
12.break,continue,return 的区别及作用.
break跳出当前循环,continue结束当前循环进入下一循环,return结束整个方法.
13.抽象类能被final修饰吗?
不能,final修饰的类不能被继承,而抽象类本身就是用来继承的,相悖所以不能.
14.static修饰的方法能调用非static修饰的变量和方法吗?
static修饰的方法只能调用静态方法和变量.
15.局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?
因为生命周期不一致,局部变量保存在栈中,当方法结束后,非final修饰的变量会被销毁,而局部内部类对局部变量的引用仍然存在,调用局部变量的时候就会出错,
16.重载(Overload)和重写(Override)的区别.
重载:方法名称相同,参数类型不同,参数类型:参数数量,参数类型,参数顺序.
重写:发生在父子类中,方法的名称参数必须相同,抛出的异常小于父类,访问修饰符大等于父类
17.构造器(constructor)和是否可被重写(Override)
构造器不能被继承,所以不能被重写,但是可以被重载,
18.Java中创建对象的方式有哪些?
(1)使用new关键字
(2)使用Class类的newInstance方法
(3)使用Constructor类的newInstance方法
(4)使用clone方法
(5)使用反序列化
19.ArrayList和LinkedList的区别?
ArrayList查询速度快(不准确),尾部增删快,头部增删慢,随机访问速度快;LinkedList头尾增删速度快,中间不高,性能远比ArrayList差,不适合做查询;真想做查询用hashMap
(1)是否保证线程安全:ArrayList和LinkedList都不保证线程安全.
(2)底层数据结构:ArrayList底层使用的是数组,LinkedList底层使用的是双链表;
(3)插入和删除是否受元素位置影响:Arraylist采用数组储存,所以插入和删除元素的时间复杂度受元素位置的影响,Linked采用链表储存.所以插入,删除元素时间复杂度不受元素位置影响.
(4)是否支持快速随机访问:LinkedList不支持高效的随机元素访问,ArrayList实现了RandmoAccess接口,所以有随机访问功能.
(5)内存空间占用:ArrayList的空间浪费主要结尾会预留一定的容量空间,LinkedList的空间花费则体现在它每一个元素都需要消耗比ArrayList更多的空间.
20.HashMap底层原理
JDK8以前:数组+双链表;
JDK8以后:数组+双链表+红黑树;
标签:面试题,Java,LinkedList,Day02,ArrayList,元素,修饰,方法,final From: https://www.cnblogs.com/carney/p/17026516.html