携程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

相关推荐

神哥不得了:神哥来啦~ JVm可以写在juc的下面,另外的话,项目亮点的话再重新用star法则再改一遍,其余的东西写的还是非常的好的
点赞 评论 收藏
分享
宇宙究极无敌耀孝子:如果你计网和算法都还没准备,建议别面。 字节用go多,spring之类问得很少,重点问计网,mysql,redis,穿插点java和操作系统的八股,然后必做算法,两道算法如果都没a出来可以说是必挂。 你取消面试就算有影响凭你的bg秋招肯定还能面,要是一面就脏面评了春招秋招肯定就白瞎了。
点赞 评论 收藏
分享
评论
6
10
分享

创作者周榜

更多
牛客网
牛客企业服务