携程Java实习(二面)

大概问的问题:

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

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

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

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


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

觉得不错就点个赞。

#携程春招##携程##实习##面经##Java#
全部评论
问过项目了吗?没项目基础学得好行不行?
点赞 回复 分享
发布于 2020-06-10 19:41
X86处理器确实对final不会插入任何内存屏障,但是其他处理器可能,估计面试官默认是x86吧。
点赞 回复 分享
发布于 2020-05-22 09:40
请问你是啥时一面的呀?
点赞 回复 分享
发布于 2020-05-21 22:10

相关推荐

04-10 11:56
如皋中学 Java
高斯林的信徒:双c9能简历挂的?
点赞 评论 收藏
分享
03-07 13:32
门头沟学院 C++
未来可欺a:读研吧,这简历只适合学历高的,本科大概率只能干开发,你这个简历开发不匹配,算法和深度学习的话学历又不够
点赞 评论 收藏
分享
评论
6
10
分享

创作者周榜

更多
牛客网
牛客企业服务