当前位置: 首页 > 面试经验 >

字节 后端 一面凉经

优质
小牛编辑
141浏览
2023-03-28

字节 后端 一面凉经

  1. 项目经历

  2. 实习经历

  3. hashmap 怎么实现?

    答:数组 + 链表/ 红黑树,然后讲了一大堆添加元素的操作(算hashcode -> 算index -> 冲突解决)

    hashmap 扩容流程

    答:默认16,有个扩容阈值0.75,扩容2n

    然后呢?具体扩容过程

    答:( 沉默 )

  4. hashmap线程安全吗?

    答:不是,首先hashmap设计理念就不是多线程场景下的

    hashmap在并发场景下会有什么问题?

    答:能插入null key/ null value 肯定会有安全问题

    具体会有什么问题了解过吗?

    答:( 沉默 ) 然后说了有可能会有跟mysql可重复读一样的问题吧

    为了线程安全用什么结构?

    答:ConcurrentHashMap

    ConcureentHashMap 怎么实现线程安全?

    答:1.7 Segment数组,分段加锁 1.8 Node数组,synchronized + CAS

  5. Synchronized怎么实现的?

    答:jvm层面 取对象监视器monitor

  6. 除了synchronize还有什么方法可以保证线程安全的

    答:讲了volatile原理、然后还有Atomic原子类,CAS的ABA问题等等(感觉这个方向不太好,应该回答别的)

  7. 了解反射吗

    答:可以通过反射去拿到类的信息,赋值,执行方法等等

  8. 反射可以解决什么问题

    答:balabla讲了一大堆动态代理被打断了,然后又重复了一遍反射本身是用来解决什么东西的

  9. 反射有什么问题?

    答:需要绕过安全检查,会有安全问题

  10. 除了安全问题还有什么?

    答:( 沉默 )

  11. java内存模型

    答:讲了运行时数据区域,线程私有公有那些( = = 回答的不太对,当时应该想错了)

  12. 堆和栈有什么不一样

    答:堆存放对象实例、静态变量、字符串常量池,栈由栈帧组成,栈帧由变量表、动态链接等方面组成

  13. 申请一个对象,他会在刚刚提到的哪个内存模型模块去发生(这个问题我实在不是很理解想问什么)

    答:讲了对象创建的过程,就加载 验证 准备 解析 初始化

    对象一定会在堆里面

    答:我说我只知道有“逃逸”的名词

    追问知道逃逸对象在哪里吗?

    答:不清楚,可能是栈

  14. Spring?

    答:简单讲了IoC、AOP

  15. mysql范式

    答:背

  16. 了解mysql事务吗?

    答:ACID

  17. 了解mysql索引吗?

    答:聚簇索引、非聚簇索引(然后讲了InnoDB、MyISAM)、二级索引,讲了一堆

  18. 联合索引

    答:最左匹配原则,(a, b, c) 创建 (a)、(a, b)、(a, b, c)

  19. a = xx,c = xxx?

    答:应该是有的,因为a等于某个值,c也是按顺序的(当时回答慌了感觉凉了、不过仔细想想好像也没啥错的,其实这里用的应该只是a的索引,这个说法好像没啥毛病)

  20. b = xx, c = xxx?

    答: 没有,不遵循最左匹配

  21. 了解唯一索引吗(直接尸体冰凉,一慌全忘了)

    答:主键索引也是一种唯一索引,但唯一索引不仅仅包括主键索引

  22. 唯一索引有null值能生效吗

    答:(完全不知道)说了不可以(刚刚查了是可以的)

  23. 进程线程区别

    答:

  24. 为什么线程进程为什么性能损耗不同?

    答:可能是包括上下文切换信息不同

  25. 进程怎么跟操作系统申请资源分配

    答:完全不知道,只知道分配内存和文件描述符,会不会跟IO模型有关,系统调度

  26. 做题:num1, num2 循环大数减小数,减到有一个为0

    面试官说是简单题,但是我卡了一会,而且面试官人超好边写还给我提示,但是飞书和leetcode不一样好不习惯

    时间到了就做了一道题
  27. 反问
本人23届本科双非,感觉是无了,不过面试体验超好,面试官人很不错,很耐心,但是问题一开始都是比较大概念然后逐渐深入(然后我就原形毕露了),我太菜了qwq
 类似资料: