面经 - 2024.11.5 vivo 外包

写在前头

本人5年工作经验,普通二本,gap10个月

第一轮

你在项目中使用外键?

回答使用

面试官杠精附体,一本阿里巴巴开发手册背的炉火纯青,气氛紧张下个话题。

阿里巴巴开发手册中提到

【强制】不得使用外键与级联,一切外键概念必须在应用层解决。

说明:以学生和成绩的关系为例,学生表中的student_id是主键,那么成绩表中的student_id则为外键。如果更新学生表中的student_id,同时触发成绩表中的student_id更新,即为级联更新。外键与级联更新适用于单机低并发,不适合分布式、高并发集群;级联更新是强阻塞,存在数据库更新风暴的风险;外键影响数据库的插入速度。

为什么JVM要使用复制算法回收新生代(Young Generation)?

回答:

  1. 新生代对象生命周期短
  2. 空间效率和内存碎片问题

复制算法体现在哪?

回答: 两个幸存者区域

复制算法将新生代划分为两个大小相等的区域:From Space 和 To Space。在每次垃圾回收时,JVM会将From Space中存活的对象复制到To Space,然后清空From Space。这样,回收过程通过简单的对象复制而不是复杂的标记和清理,大大减少了内存碎片。

Java中最经典的悲观锁实现

回答: synchronized

synchronized的优化?

回答:锁升级,锁消除

你用过list吗?

回答:用过

什么情况下使用LinkedList而不是ArrayList?

回答: 从底层实现的角度来说这两种list的优劣,基本就是线性表和链表的区别 略

在浏览器输入 www.baidu.com 按下回车之后会发生什么,讲讲你知道的

回答:

  1. 用户输入URL ,浏览器会尝试解析并确定用户访问的是网页(HTTP/HTTPS)。
  2. 做dns解析
  3. 应用层封包 (HTTP协议)
  4. 传输层封包(TCP协议)
  5. 网络层封包(IP协议,ARP协议)
  6. 链路层封包 (数据帧)
  7. 通过网卡传输出去
  8. 从局域网出互联网做一次SNAT
  9. 通过IP协议的目的ip做路由表匹配
  10. 经过多个路由转发
  11. 进入百度内网做一次DNAT
  12. 通过ARP协议找到mac地址
  13. 三次连接建立握手
  14. TLS握手 https证书
  15. 交换数据
  16. 四次挥手

第二轮

领导面,讲一下自己的项目,然后了解一下工作内容,加班强度大 PUA之类

HR面

外包的hr面也是VIVO本部的HR,牛气的不行,问点东西说自己去官网看,来点正常的行为面试 说了一下期望薪资 结束

重点 : 无下文