首页 > 携程Java实习(二面)
头像
阿帕亚
编辑于 2020-05-22 19:19
+ 关注

携程Java实习(二面)

大概问的问题:

  • 一些Java基础问题
  • GC ,分代管理,优势
  • 排序算法的一些问题,稳定是什么意思
  • 用过哪些设计模式
  • 单例代码实现
  • 算法题:(挺简单的算法题)
    • 十进制转八进制
    • 反转链表
    • 树的最大深度

面试官问我final 关键字的四个使用场景和语义,其中我说了final有内存屏障。
根据《Java并发编程的艺术》书上说描述的:

final域重排序规则
final域是基础数据类型:
在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。
初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。
Final域是引用数据类型:
在构造函数内对一个final引用的对象的成员域的写入,与随后在构造函数外把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。

谢谢Tandejian评论区补充:
X86处理器确实对final不会插入任何内存屏障,但是其他处理器可能,估计面试官默认是x86吧。


最后总结,虽然final有内存屏障的语义,但是X86处理器上并没有相应的实现,是我回答有些问题。抱歉,收回之前的吐槽,携程是上海互联网扛把子,里面各个都是人才,说话又好听。

觉得不错就点个赞。

更多模拟面试

全部评论

(3) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐