Java常见面试题(七)

1、过滤器和拦截器的区别?

1)过滤器依赖Servlet;拦截器依赖Web框架如SpringMVC,能起到AOP的效果,通过拦截器可以实现动态代理。

2)过滤器基于函数回调;而拦截器基于Java的反射机制。

3)过滤器可以过滤各种请求,而拦截器只能拦截Controller请求,对诸如直接访问静态资源的请求无能为力。

4)过滤器比拦截器先执行。

5)在一次请求的生命周期中,拦截器可以多次被调用,并且使用很灵活;而过滤器只能在容器初始化时被调用一次。


2JVM的组成部分有哪些?

类加载器(ClassLoader)

运行时数据区(Runtime Data Area)

执行引擎(Execution Engine)

本地库接口(Native Interface)


3JVM的运行时数据区分为哪五大部分?

堆、栈、本地方法栈、方法区、程序计数器


4、新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?

新生代回收器:Serial、ParNew、Parallel Scavenge

老年代回收器:Serial Old、Parallel Old、CMS

整堆回收器:G1


新生代垃圾回收器一般采用的是复制算法,复制算法的优点是效率高,缺点是内存利用率低;老年代回收器一般采用的是标记-整理的算法进行垃圾回收。


5Minor GCFull GC分别在什么时候发生?

新生代内存不够用时候发生Minor GC,

Minor GC失败或者JVM内存不够的时候发生Full GC。


6volatile i++线程安全吗?

不安全。


原因:Java中只有对基本类型变量的赋值和读取是原子操作,如i = 1的赋值操作,但是像j = i或者i++这样的操作都不是原子操作,因为他们都进行了多次原子操作,比如先读取i的值,再将i的值赋值给j,两个原子操作加起来就不是原子操作了。


7CMS为什么采用标记——清除算法?

CMS主要关注低延迟,因而采用并发方式,清理垃圾时,应用程序还在运行,如果采用压缩算法,则涉及到要移动应用程序的存活对象,此时不停顿,是很难处理的。

一般移动存活对象是需要停顿的,再让应用程序继续运行,但这样停顿时间变长,延迟变大,不符合CMS低延迟的运作模式,所以CMS采用清除算法。


8、成员变量和静态变量分布存在哪里?

成员变量存在堆中,静态变量存在方法区中。


9、反射有哪三种做法?

假设 Foo  foo=new  Foo();

1)通过Object的getClass方法:Class cla = foo.getClass()

2)通过对象实例获取:Class cla = foo.class

3)通过Class.forName方式:Class cla = Class.forName( "xx.xx.Foo" );


10ArrayList是线程不安全的,轻量级的。如何使ArrayList线程安全?

1)继承Arraylist,然后重写或按需求编写自己的方法,这些方法要写成synchronized,在这些synchronized的方法中调用ArrayList的方法。

2List list = Collections.synchronizedList(new ArrayList());

内容来源公众号:小谢backup

全部评论

相关推荐

昨天 11:26
清华大学 Java
打开电脑,思绪又回到了7月份刚开始的时候,感觉这个月过的如梦如幻,发生了太多事,也算是丰富了我本就是平淡的人生吧太早独立的我习惯了一切都是自己做决定,拥有绝对的决定权,而且永远不会听取别人的建议。我就是那个恋爱四年出轨的男主啦,感觉既然在牛客开了这个头,那我就要做个有始有终的人。从我出轨到结束再到和女朋友和好如初真的太像一场梦了,短短的一个月我经历了太多,也成长了很多,放下了那些本就不属于我的,找回了那些我不该放弃的。我的人生丰富且多彩,但人不能一直顺,上天总会让你的生活中出点乱子,有好有坏,让你学会一些东西,让你有成长。我和女朋友的恋爱四年太过于平淡,日常除了会制造一些小浪漫之外,我们的生活...
段哥亡命职场:不得不说,我是理解你的,你能发出来足见你是个坦诚的人,至少敢于直面自己的内心和过往的过错。 这个世界没有想象中那样非黑即白,无论是农村还是城市,在看不见的阴影里,多的是这样的事。 更多的人选择站在制高点去谩骂,一方面是社会的道德是需要制高点的,另一方面,很多人不经他人苦,却劝他人善。 大部分的我们,连自己生命的意义尚且不能明晰,道德、法律、困境,众多因果交织,人会迷失在其中,只有真的走出来之后才能看明白,可是没走出来的时候呢?谁又能保证自己能走的好,走的对呢? 可是这种问题有些人是遇不到的,不去追寻,不去探寻,也就没了这些烦恼,我总说人生的意义在过程里,没了目标也就没了过程。 限于篇幅,没法完全言明,总之,这世界是个巨大的草台班子,没什么过不去了,勇敢面对,革故鼎新才是正确,祝你早日走出来。查看图片
点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务