关于360实习这件小事

狗头保命:我的个人情况比较特殊,不具备普适性,仅作参考。

个人情况

  • 26届,双非本,计科,主要学习方向是 Java 后端开发,前端能看懂一些,写是写不了一点。
  • 最最最重要的一点:我眼拙,投递的岗位是25春-Android手机软件开发工程师

时间线

  • 3月22日:投递简历。
  • 4月06日:笔试。
  • 4月21日:预约一面时间。
  • 4月24日:11:00一面。
  • 4月24日:18:15预约二面时间。
  • 4月29日:15:00二面。
  • 4月30日:官网状态更新为HR面试排序中。
  • 5月09日:预约HR面时间。
  • 5月13日:HR面试。
  • 5月16日:官网状态更新为Offer发放排序中。
  • 6月13日:电话口头offer,预计16号(最晚17号)下offer,18号入职(实习岗,非秋招春招)。

一面面经

忘了录音了,没有当时自己的回答,下面是能回忆起来的一些问题。

  1. 进程和线程的区别
  2. 用户态和内核态的切换
  3. 网络协议
  4. http与https的区别
  5. https怎么加密的
  6. tcp和udp的区别
  7. udp怎么实现可靠传输
  8. 网络层和数据链路层的区别
  9. 各层协议报文的位置
  10. jvm内存模
  11. 每个部分对线程的拥有性
  12. 内存泄漏的情况
  13. B+树
  14. 算法: 第k大的数
  15. 快排和归并的区别
  16. 多线程同步
  17. 共享资源为什么出问题

二面面经

  • 刚开始聊了几分钟非技术的东西。。。
  1. Java的内存模型是什么样的? a. 主要是通过 JVM 进行管理,分类上来说可以分为堆、栈、方法区、寄存器和程序计数器。

  2. 什么叫内存模型?主要定义了什么东西 a. 内存模型给内存划分了不同的区域,不同区域保留我们自己定义的一些变量。

  3. 可见性有序性原子性是什么概念? a. 可见性是指:在多线程环境下,线程 A 对 共享变量 X 进行了修改后,线程 B 无法立马得知变量 X 被修改了。 b. 有序性是指:代码实际执行顺序和代码书写顺序完全相同。 c. 原子性是指:一些操作要么全部完成,要么全部不完成。 d. volatile 关键字可以保证可见性和有序性。被 volatile 修饰的变量,线程 A 对其进行修改后,线程 B 对该变量的修改是立马可见的。通过添加内存屏障的方式,保证了代码的实际执行顺序和代码书写顺序完全相同。

  4. 有没有什么具体场景?

    a. 可见性:如果某个商品的库存只剩一个了,这时候有两个用户同时购买这个商品,必须要保证用户 A 购买商品后,商品库存的减少对用户 B 是立马可见的。 b. 有序性和原子性:A 给 B 进行银行转账,必须是 A 先扣款, B的余额才能增加。同时必须保证原子性,不能说 A 扣款了 ,但是 B 的余额没有增加。

  5. 用过单例模式嘛?单例里面有什么场景是和这个有关的?

    a. 单例是要保存线程安全的,采取的方案是加双重检查锁。

  6. 单例模式为什么要加双重检查锁?

    a. 双重检查锁是两个 if 中间加了一个锁,第一个 if 是为了提高效率,第二个 if 是为了保证单例,加锁是为了保证线程安全。

  7. volatile 和 synchronized 在可见性的保障上,看过底层源码嘛?或者我换一种说法,为什么 volatile 不能替代锁? a. volatile 不具备原子性,只能实现有序性和原子性。

  8. 在可见性的保证机制上面呢? a. volatile 主要是通过加读写屏障实现的,锁是通过加锁解锁来实现串行化操作,保证同一时刻只有一个线程进行访问。

  9. Java 中有哪些锁? a. synchronized 、 Lock、CAS 乐观锁。

  10. 用过 reentrantLock 嘛? a. 用过,它是一个可重入锁。

  11. 他和 synchronized 的主要差别在哪里? a. 主要差别在可重入性。 b. 可重入性是指:当一个线程已经持有这个锁时,在持有锁的期间能否再次请求这个锁?可重入性是可以再次请求的。 c. reentrantLock 具备可重入性,是可重入锁。

  12. 那 reentrantLock 的使用场景是什么? a. 公平锁和超时。

  13. 结合一个例子说一下。 a. 公平和不公平主要是说,获取锁的顺序和申请锁的顺序一不一样,有时候我们需要保证获取锁的顺序必须和申请的顺序是完全一致的。

  14. 是怎么实现可重入的?加锁是有加锁的次数的。 a. 有一个栈,加锁之后会往栈里面放一个,释放锁就会从栈里面弹出来一个。

  15. 有没有看到它的 AQS ? a. 挺多的锁的底层用的都是这个类,主要使用一个 volatile 修饰的一个状态字段属性,和 CAS 操作。

  16. 我看你还刷了不少题是吗? a. 之前是在力扣上做过一点点,主要是为了练习自己的算法能力,参加一些算法比赛。

  17. 刷题给你带来了什么好处? a. 对常见的数据结构及其常见的用法更加了解了。 b. 对思维逻辑的能力进行强化和锻炼。

  18. 有没有印象比较深的算法题。 a. 力扣第 62 题...... b. 动态规划和数学解题,一顿子编...

  19. 安卓这方面你了解多少? a. 安卓底层主要用的应该也是 Java 和 JS ,编程语言这块是相通的。 b. 安卓的四大组件是有所了解的。

  20. 对于陌生的领域,比如说安卓,学习路径你会怎么规划? a. 一顿子吹牛逼...

  • 后面就是唠嗑了...
  • 二面面试官说了会把我往 HR 面推,但是由于我当时眼拙投的是 25 届的春招,不是实习。。。

HR面面经

这个纯唠嗑,就没有记录自己的回答。

  1. 自我介绍。
  2. 是本科期间服兵役了嘛?
  3. 如果面试通过的话,可以长期实习嘛?
  4. 服兵役是自己的选择嘛?
  5. 为什么想去参加兵役呢?
  6. 在部队期间主要负责哪些工作?
  7. 计算机相关的知识,主要是自己自学的嘛?
  8. 你的简历上写的更偏后端一些,但是我们这个岗位是移动端,你自己的求职意向呢?
  9. 你现在才大三,正常来说应该不会参加校招的,怎么这么早就开始了?(我也不想参加校招啊。。。。但是我的眼神它不争气啊.......)
  10. 按照公司这边的要求,26届的校招offer可能发不了,实习岗位你可以接受吗?
  11. 反问 a. 大概多久出结果(答:两个工作日,最多三个工作日) b. 后续结果是:第三个工作日的时候,官网状态从HR面试中变成了Offer发放排序中,这一排就是一个月。

一些碎碎念

  • 4月30号二面结束后,确定可以进到 HR 面,以为这家公司就稳了,5月上旬和中旬一直一直都没有投简历,就等着 360 给我下offer,但是一直等一直没等到。后面开始慌了,又开始投简历,但是面试机会已经少了很多了。

  • 这家公司给我的感觉来说,整体效率还是很高的,浅浅评价一下

  • 槽点:整个流程中根本联系不到公司的任何人。

  • 夸:官网的状态写的很清楚,能知道自己当前正处在哪个阶段。

  • 夸:面试结果反馈的很快,通过了之后立马就会约下一次面试。虽然没有公司的人进行对接,但是官网上给的待选时间多达十几个。

  • 个人认为,我的 offer 发放拖了这么久,主要原因是我一个 26 届投了 25 届的岗位,所以可能会麻烦一些,应该不是公司效率的问题。而且有一个我朋友的朋友,走的 360 的前端岗,HR 面结束后一周内就下 offer 了。

  • 在小红书上看,这家公司的内部氛围还是很好的,食堂零食健身房等福利也超级棒,狠狠期待住了。

  • 唯一的问题就是,我投递的岗位是安卓手机软件开发,应该是用 kotlin 语言,不出意外的话是得转语言了,但是也还好,kotlin 底层封装的就是 Java。去公司之后会面临哪些困难和问题,暂时还不清楚,未来还未来,现在不去纠结和焦虑还没发生的事。相信自己,遇一关过一关就好。

  • 可能很多事情不是我们自己能够完全决定的,做好自己能做的和该做的,顺其自然,问心无愧就好。

  • 哎这就又想到学校的学习了,到底是自我感动,还是努力不够,还是运气太差,总是考不到想要的成绩。准备的比小伙伴更充分更认真时间更长,但是最后就是考不过,甚至考前一直问我题的朋友出成绩了都比我高。但是没事,我自认为已经是做了自己该做的,结果怎么样都能接受,再说了,又不会导致我拿不到奖学金。

  • 愿从校园踏入职场,能保持现有的心态,坚信所有的付出都是会有回报的。

  • 愿我们都能拥有自己的思想,过着属于自己的生活。

  • 每个人都是从生来便开始走向死亡,从出生就注定死亡。谁又不想在这有限的时间里尽情折腾一番呢。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
Again_acme
下载 APP