360服务端开发面经(社招岗)

一面

1、String内容存放在哪儿?

答:运行时常量池,然后把jvm的内存结构讲了一下,堆、栈、程序计数器、方法区等,每

块区域的作用之类的。

2、jvm的回收机制是什么?

问的有点大,只好从分代回收算法说起,从GC ROOTS的引用链机制到新生代的小空间复制

算法再到老生代的标记清除算法,最后就是新生代和老生代之间的关系以及跃迁等。

3、讲讲jvm的类加载机制吧,委托双亲机制吧。

反射机制是如何利用类加载机制的呢?

4、懂哪些设计模式?

答:单例,建造者,观察者,模板方法模式,迭代器模式等。

5、你在项目中用到过观察者模式吗,怎么用的?

答:做统一配置组件的时候使用到了zookeeper的发布订阅,创建了监听链表,完成应用系

统的注册和同步。

6、写个单例模式吧,把你认为效率最高的单例实现写出来。

答:当然是通过jvm的内部类机制实现单例了,又快又安全

7、再写一个双检查的懒汉单例模式吧。

8、为什么要用volatile关键字?

答:在高并发时会出现并发模式异常,volatile可以防止指令重排,创建对象操作并不是一

个原子操作,分为三个步骤

(1)构建对象:根据Person类元信息确定对象的大小,向JVM堆中申请一块内存区域并构

建对象的默认信息(加载Person对象成员变量信息并赋默认值如int类型为0,引用类型为

null)。

(2)初始化对象:然后执行对象内部生成的init方法,初始化成员变量值,同时执行搜集

到的{}代码块逻辑,最后执行对象构造方法。

(3)引用对象:对象实例化完毕后,再把栈中的Person对象引用地址指向Person对象在堆

内存中的地址......

9、能不能讲讲线程的内存模型?

10、谈谈你对cas的理解。

#面经##社招##360公司##Java工程师#

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
3 22 评论
分享

全站热榜

正在热议