暑期实习:上海字节飞书企业应用面经(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

相关推荐

Web缓存是一种用于临时存储网页资源的机制,它可以提高网页加载速度和减少网络流量。浏览器会在本地存储已访问过的资源(例如HTML、CSS、JavaScript、图像等),当再次访问相同资源时,浏览器会尝试从缓存中获取资源,而不是重新下载。浏览器缓存的工作原理如下:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=b48bebe08e474db8b80b853b12bafd48当浏览器首次请求某个资源时,服务器会在响应中附带缓存相关的HTTP头信息,例如"Cache-Control"和"Expires"。浏览器会将这些资源以键值对的形式保存在本地缓存中,键是资源的URL,值是具体的资源内容。下次请求相同资源时,浏览器会检查缓存中是否有匹配的资源。 a. 如果缓存中存在匹配的资源,并且缓存未过期(根据"Cache-Control"和"Expires"头信息判断),则浏览器直接从缓存中获取资源。 b. 如果缓存中存在匹配的资源,但缓存已过期,则浏览器发送带有"Cache-Control"和"Expires"头信息的条件请求,即发送一个"If-None-Match"和/或一个"If-Modified-Since"头信息给服务器,用于验证资源是否有更新。如果服务器返回304状态码表示资源未更新,则浏览器从缓存中获取资源;否则,服务器会返回新的资源。 c. 如果缓存中不存在匹配的资源,则浏览器会发送完整的请求给服务器,并将获取到的资源保存到缓存中。
点赞 评论 收藏
分享
01-23 14:53
已编辑
东南大学 Java
时长1h10min,其中算法10min自我介绍一下1.非科班转码原因,本科学过JAVA相关课程吗2.除了java还用过什么语言3.说说JAVA和Python的区别4.说说对JAVA多态的理解5.知道synchronized关键字吗6.说说volatile关键字的作用7.spring和springboot的区别8.注解的原理是什么9.项目里配置的jvm垃圾回收器是哪个,用到哪些jvm垃圾回收的算法10.mysql给了一个表头,问各个数据类型应该要设置成什么11.id设成了int类型,表中最多可以放多少个数据。12.数据太多怎么办,表放不下了13.分表具体应该怎么分14.如果mysql查询速度很慢,怎么排查这个问题15.索引失效场景有哪些16.索引为什么快17.看你项目里用了分布式锁,那你了解redis里的redlock吗(说不太了解,让我回去了解一下)18.redis想实现一个简易的消息队列应该怎么做。19.不用stream流呢,可以用redis里哪个数据类型20.刚刚说到list,说说redis具体有哪五个基本数据类型21.那么说说zset的原理22.讲讲消息队列的用途23.消息队列kafka和rocketmq有什么区别,适用场景有什么不同。24.linux怎么查看进程25.linux怎么杀死进程26.怎么排查linux硬件问题,查看cpu占用,内存占用等。(没答上)27.linux一个文件里怎么快速查看到指定字段,比如java字段(没答上)28.linux怎么查看最近的10条mysql日志记录(没答上)29.说说linux项目部署流程。(没答上)手撕:有序数组二分查找(可能linux太多没答上有点绷不住了,说找个简单的给我做,结果测试用例写了很久)(我)反问业务(我)声明可实习时长和到岗时间30.对小米的看法怎么样1.3通知一面通过了,等待二面
点赞 评论 收藏
分享
评论
6
58
分享

创作者周榜

更多
牛客网
牛客企业服务