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工程师#
全部评论

相关推荐

11-07 11:46
已编辑
南京理工大学 C++
都没出结果,问问是各位会如何选择补充一下,华为应该是14左右县是南通市下面的一个县局
在敲键盘的布莱克很积极:兄弟,我给你提供一个角度,其他评论可能更多是从待遇和发展前景来看的,但是我建议你想一想你走哪条路更能产生对自己的身份认同。 如果你乐于钻研技术,喜欢工程实践,即使从华为失业你也能认可自己工程师的身份,不因为工作上不顺而失去对自己的尊重(因为这是你几乎必然会面对的情况),那就可以去华为,毕竟广阔天地大有可为。 但是如果你并不能因为技术产生自我的身份认同,那建议还是公务员吧,因为这种职业自带身份认同,不需要你有很强的兴趣与心理建设来支持,即使每月钱不多,你比较容易做到自己尊重自己,也容易在社会上得到他人的尊重。 不管钱多钱少,待遇怎么样,最终还是要自己过得开心,享受到了生活,才算是好的一生
投递华为等公司10个岗位 >
点赞 评论 收藏
分享
点赞 评论 收藏
分享
头像
11-10 15:58
东北大学 Java
当时脑抽投了个数开
接受平庸也未尝不可:《卓越表现》
投递美团等公司10个岗位 > 你都收到了哪些公司的感谢信?
点赞 评论 收藏
分享
3 22 评论
分享
牛客网
牛客企业服务