暑期实习:上海字节飞书企业应用面经(OC)

字节飞书一面(3.16)

  1. 自我介绍+项目(没有围绕项目问)
  2. 写题:接雨水
  3. 从写Java代码到代码在JVM运行,经历了哪些(编译、类加载相关)
  4. 了解lombok吗,lombok生效的时间和设计思路
  5. findClass() 和 loadClass() 的区别(双亲委派相关)
  6. 如何打破双亲委派,如何实现
  7. Synchronize和Lock区别
  8. Synchronize的同步阻塞
class A {

      public void synchronized a() {

      }

      public static void synchronized b() {

      }

      public void c() {
        synchronize(A.class) {
          ...
        }
      }
    }


    //大量线程访问以下方法,问阻塞状态
    a.a();
    b.b();
    c.c();
    a.b();
    d.a();
  1. ApplicationContext、BeanFactory、FactoryBean的区别和联系
  2. ApplicationContext的父子容器是什么
  3. 静态代理和动态代理
  4. AOP相关

检查是不是同一个类中的方法调用(如A方法无@Transactional注解,调用了一个有@Transactional注解的方法),这样事务也是不生效的。原因可参照如下文章:

https://blog.csdn.net/levae1024/article/details/82998386

https://blog.csdn.net/gx_hxl/article/details/80808088

https://blog.csdn.net/m0_38027656/article/details/84190949

    class A {

      public void a() {
        b();
      }

      @Transactional
      public void b() {
        ...
      }
    }

spring 在扫描bean的时候会扫描方法上是否包含@Transactional注解,如果包含,spring会为这个bean动态地生成一个子类(即代理类,proxy),代理类是继承原来那个bean的。此时,当这个有注解的方法被调用的时候,实际上是由代理类来调用的,代理类在调用之前就会启动transaction。然而,如果这个有注解的方法是被同一个类中的其他方法调用的,那么该方法的调用并没有通过代理类,而是直接通过原来的那个bean,所以就不会启动transaction,我们看到的现象就是@Transactional注解无效。

  1. Sql题:

    给定student表
    name age
    A 18
    B 18
    C 21
    D 19

    1. 查询年龄不重复的年龄
      结果应为:
      age
      21
      19

    2. 分段查询年龄的人数,10-19,20-29
      结果应为
      10-19 20-19
      3 1

  2. 反问环节

  3. 追问:Cookie和Session的区别

  4. 了解过在Tomcat中,Cookie什么时候产生,什么时候消亡吗

  5. 向我推销一下自己

字节飞书二面(3.23):

  1. 自我介绍
  2. 项目相关问题:①角色权限模型;②用户认证(加密)和鉴权(角色权限)
  3. 零拷贝
  4. http断点续传
  5. linux从通电到启动服务,经历了哪些步骤
  6. linux系统中进程的通信方式
  7. http和https之间的区别
  8. https的握手过程
  9. CA证书的验证流程,信任链最上层是什么,可以伪造吗
  10. 密码套件里有哪些内容
  11. Spring相关:三层缓存解决循环依赖,每层依赖的作用,两层可以吗
  12. 算法题:LC22:括号生成

字节飞书三面(3.26)

  1. 自我介绍
  2. 项目相关问题
  3. 算法题:
    1. 二叉树的直径
    2. 最长上升子序列(打印路径)

无hr面

因为第三面的时候,做题做了很久,感觉面得不是很好,后面打电话问hr,说的是可能给我调剂到成都,然后会有一场加面,清明节后询问加面时间,结果得知不用加面了,也不用hr面了,已经进入流程在审批offer了!意外之喜!

收到offer letter(4.8)

运气很好,还愿牛客!

#实习#
全部评论
牛哇牛哇
点赞 回复 分享
发布于 2022-04-10 20:35
老哥 base那里
点赞 回复 分享
发布于 2022-04-11 13:27
老哥请问那个最长上升子序列有多种路径的话是全部打印还是只用打印其中一种
点赞 回复 分享
发布于 2022-04-22 21:17
我想知道上海还能实习吗
点赞 回复 分享
发布于 2022-04-23 01:30
大佬是研究生吗
点赞 回复 分享
发布于 2022-04-23 11:38
老哥,去了吗,感觉咋样
点赞 回复 分享
发布于 2022-06-25 19:50
兄弟EA平时业务具体是啥 工作内容是怎么样的 感觉咋样
点赞 回复 分享
发布于 2022-07-06 13:34

相关推荐

算法题: 1, 2, 5, 10 硬币组成n元的组合方式答: 完全背包的动态规划, 但是递推公式有点问题, 没做出来, 应该是求出用不用第i硬币的加法而不是取max类似:********************************************************问题1. 上次面试有哪些不会?学了吗?2. 什么情况下数据会进入老年代?3. JVM老年代会不会被GC?4. 为什么GC要分成不同的年代?5. GC的分代内存是连续的还是零碎?各有什么好处?坏处?6. 数据链路层、网络层、传输层为啥要分层, 各层的职责7. 那为啥要分呢, 不分不是更好8. 传输层 什么是链接?9. 如果网络某一个路由器断开3s, 链接还存在吗?10. 进程间通信方式共享内存, 进程A 存放字符串的指针, 进程B读指针,然后print(指针) 会打印出什么?11. 你能讲讲你个人的优势在哪里?回答:1. 上次关于JVM进程的详解没有讲清楚, 这次详细讲解了new 一个对象的全过程● 类加载检查, 看下这个对象所属的类有没有加载、链接、初始化成功, 否则先加载类(JVM类加载具有动态加载的特性)● 分配内存, 分配方式根据内存模型的规整与否(关系GC的选择)● 内存零值赋值● 初始化对象头,包括这个对象的年龄代、字面量、属于哪个类的元数据等, 其实就是标记字段 + 类 指针● Init(), Java程序看起来,对象的创建函数,字段init(), 对象的地址分配给引用变量● JVM内存模型分为不同的年龄代, Eden Survivor Old等● 年龄代存在对象头中, 用于记录GC情况, 当一个对象对于GC Root没有被引用的地方,即不可达时, 会被标记, 后续再次会被删除2. Eden在经过一次MoniGC 还存活的对象进入S0、S1区, 年龄+1, 年龄超过GC器阈值(0 -15)可以进入老年代, 同时大对象也可以进入老年代3. 会。被回收的直接原因是因为对象的引用可达性不存了,GC一般分为部分GC和Full GC, 部分GC可以在单独的Eden、Old乃至混合区域GC,如果内存不够还会触发Full GC 引用不可达的老年代对象一样会被删除4. 不同年代内存区域有各自的适用范围, 比如Eden每时每刻都会有大量的对象死去, 适用用标记-复制, 而老年代对象存活时间较长, 用标记-清除、标记-整理更好, 分代GC效率更高5. 零碎的。零碎的好处是空间利用率高, 只需要一个逻辑标识就能知道是哪个年龄代, 坏处是没有利用好空间局部性。连续的好处是利用了空间局部性, 但是容易有碎片。6. 有点问穿, 数据链路层的基本单位是数据帧, 用于咋局域网内的物理机器地址mac传输, 网络层是在不同的子网内ip传输, 传输层是在找到了应用端间口建立的稳定或者不稳定的链接7. 。。。。我回到是耦合性, 解耦了, 不同层有不同的协议解决各自的问题, 混沌系统太复杂的很难排查, 分层每次只需要接受下层接口,给上层提供服务就行,而不用关心实现细节8. 我认为的链接是指在目标端口的过程中, 无论是IP协议会在不同路由器留下转发映射, 还是APR协议留下目标MAC IP转换, 在逻辑上是有一条通路的, 这就是链接9. 我认为如果路由器的ip映射也消失了, 就会断开链接, 如果没有不一定会断开, 还会重新去找路径链接, 如果在没有超过ACK确认的时间内找到了则不会断开(这段感觉在胡言乱语)10. 这不太会, 我答的是地址或者HashCode, 提到了很多虚拟地址的情况, C++相关的问题, 后面查资料是因为每个进程的虚拟地址空间不一样, 进程B是打印不对的11. 从个人专业学习、工程经验、团队经验、个人性格四个方面回答
查看11道真题和解析
点赞 评论 收藏
分享
评论
6
58
分享

创作者周榜

更多
牛客网
牛客企业服务