面试是我们每个人都要经历的事情,大部分人且不止一次,这里给大家总结最新的2020年面试题,让大家在找工作时候能够事半功倍。
1.Switch能否用string做参数
a.在Java7之前,switch只能支持byte,short,char,int或者其对应的封装类以及Enum类型。在JAVA7中,String支持被加上了。
2.equals与==的区别:
a.==是判断两个变量或实例是不是指向同一个内存空间equals是判断两个变量或实例所指向的内存空间的值是不是相同
3.Object有哪些公用方法
a.方法equals测试的是两个对象是否相等
b.方法clone进行对象拷贝
d.方法notify,notifyall,wait都是用来对给定对象进行线程同步的
4.Java的四种引用,强弱软虚,用到的场景
a.利用软引用和弱引用解决OOM问题:用一个HashMap来保存图片的路径和相应图片对象关联的软引用之间的映射关系,在内存不足时,JVM会自动回收这些缓存图片对象所占用的空间,从而有效地避免了OOM的问题
d.软引用:在使用软引用时,如果内存的空间足够,软引用就能继续被使用,而不会被垃圾回收器回收,只有在内存不足时,软引用才会被垃圾回收器回收。
e.弱引用:具有弱引用的对象拥有的生命周期更短暂。因为当JVM进行垃圾回收,一旦发现弱引用对象,无论当前内存空间是否充足,都会将弱引用回收。不过由于垃圾回收器是一个优先级较低的线程,所以并不一定能迅速发现弱引用对象
f.虚引用:顾名思义,就是形同虚设,如果一个对象仅持有虚引用,那么它相当于没有引用,在任何时候都可能被垃圾回收器回收。
g.使用场景:
5.Hashcode的作用,与equal有什么区别
a.同样用于鉴定2个对象是否相等的,java集合中有list和set两类,其中set不允许元素重复实现,那个这个不允许重复实现的方法,如果用equal去比较的话,如果存在1000个元素,你new一个新的元素出来,需要去调用1000次equal去逐个和他们比较是否是同一个对象,这样会大大降低效率。hashcode实际上是返回对象的存储地址,如果这个位置上没有元素,就把元素直接存储在上面,如果这个位置上已经存在元素,这个时候才去调用equal方法与新元素进行比较,相同的话就不存了,散列到其他地址上
6.String、StringBuffer与StringBuilder的区别
a.String类型和StringBuffer类型的主要性能区别其实在于String是不可变的对象
b.StringBuffer和StringBuilder底层是char[]数组实现的
c.StringBuffer是线程安全的,而StringBuilder是线程不安全的
7.Override和Overload的含义去区别
a.Overload顾名思义是重新加载,它可以表现类的多态性,可以是函数里面可以有相同的函数名但是参数名、返回值、类型不能相同;或者说可以改变参数、类型、返回值但是函数名字依然不变。
b.就是ride(重写)的意思,在子类继承父类的时候子类中可以定义某方法与其父类有相同的名称和参数,当子类在调用这一函数时自动调用子类的方法,而父类相当于被覆盖(重写)了。
8.抽象类和接口的区别
a.一个类只能继承单个类,但是可以实现多个接口
b.接口强调特定功能的实现,而抽象类强调所属关系
c.抽象类中的所有方法并不一定要是抽象的,你可以选择在抽象类中实现一些基本的方法。而接口要求所有的方法都必须是抽象的
9.解析XML的几种方式的原理与特点:DOM、SAX、PULL
a.DOM:消耗内存:先把xml文档都读到内存中,然后再用DOMAPI来访问树形结构,并获取数据。这个写起来很简单,但是很消耗内存。要是数据过大,手机不够牛逼,可能手机直接死机
b.SAX:解析效率高,占用内存少,基于事件驱动的:更加简单地说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束、文档(document)结束等地方时通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。
c.SAX:与SAX类似,也是基于事件驱动,我们可以调用它的next()方法,来获取下一个解析事件(就是开始文档,结束文档,开始标签,结束标签),当处于某个元素时可以调用XmlPullParser的getAttributte()方法来获取属性的值,也可调用它的nextText()获取本节点的值。
10.wait()和sleep()的区别
sleep来自Thread类,和wait来自Object类
调用sleep()方法的过程中,线程不会释放对象锁。而调用wait方法线程会释放对象锁
sleep睡眠后不出让系统资源,wait让出系统资源其他线程可以占用CPU
以上就是动力节点Java培训机构的小编针对“2020年Java程序员面试题,高新就靠它”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。