快手(海外电商)

快手一面(4.8)

  1. 你是如何进行考虑你的项目的?你为什么要想着写这样的两个项目,你学校学过java吗,如何进行学习的

    阿巴阿巴……

  2. 来考察一下你的java的基础知识吧,如果我们对于一个Map的结构进行插入会发现十分的慢?这是为什么?

    map的实现是由数组+链表完成,因此会进行O(n)的插入操作,分开将jdk1.8之前和之后

  3. 如果你进行优化你会如何进行优化

    开始头脑风暴…..首先我想的是将传统的拉链法进行优化,我们可以优化成地址探测法加拉链法……(看得出不太满意,现在复盘发现有点离谱)

  4. 这样会导致什么问题?

    如果我们进行插入的时候我们会发现要不断的进行数组的扩容

  5. 除了对于数组进行操作,我们还可以进行什么操作(面试官tip: 从链表的结构,我们不用转化成红黑树)

    继续头脑风暴…..用redis中的跳表,给索引构建索引

  6. 还行,你讲一下跳表和红黑树,为什么redis要使用跳表而不使用红黑树,红黑树的开销问题

    吟唱失败,(从redis的使用场景进行考虑),redis主要是用作内存,因此从插入的角度来进行考虑,如果使用插入的范围比较范围比较小的话我觉得跳表的开销可能小于红黑树(又开始问如何进行算开销),红黑树学的依托答辩,现场吟唱失败直接说忘了,最后提示到如何进行调整

  7. 开始提问Spring,列举一下Spring你是如何进行理解的

    又开始胡说(框架是基本上一点没学),阿巴阿巴

  8. 那你说一下你是如何进行理解SpringBoot和Spring的吧

    Spring Boot是Spring的升级版…….(被及时更正了),(如何进行理解boot),巴拉巴拉,我觉得boot是启动得意思,算了好好看.

  9. 如何理解Spring MVC的

    把三个层讲了一下,随便吟唱了一下dispatcher的分发过程(又打断)如果没有dispatcher怎么办,我觉得还是不知道(奶龙抬头,骄傲)(又给小建议,下去看一下旧技术)(突然想起旧的技术不是RESTFUL吗…….统一响应,我真服了)

  10. (噩梦时刻) 我看你写了你熟悉读写分离,那你来讲一下吧

    (心想),真服了……数据库是啥,不熟……胡说到了冷热分离,我真服了,接着又开始提示使用主从结构,瞬间联想到了binlog,然后开始吟唱项目二的binlog实现(接着问,你是要自己实现吗)答曰是的

  11. 面试官人帅心善,说下去再看一下,binlog数据库本身可以实现

  12. 下来问了一下如何判断表的索引性能

    支支吾吾了半天,想出了个explain…..

  13. 给了一下语句

    1
    2
    3
    4
    idx(id,name,sex)
    where name = 'zhangsan'
    --能执行到吗
    --想了半天,哼哼了个最左匹配,但是不会
  14. 下去好好看看sql高性能优化(好的,疯狂感谢)

  15. 来做道题吧……..算了,今天到此结束(最早什么时候能来,六月多,实习多久:三个月以上)

  16. 反问,您好,您现在的方向是什么,快手海外电商

  17. 那快手加班强度怎么样,不大,没有大小周

总结: 数据库太差,框架只能说个大概,面试心态比想象中的略好一点,面试官人很好,很会循序渐进,中间打断面试官吟唱太多,下次改进.整体面试不到半个小时,人麻了,以为完了,结果十分钟二面的通知就来了……

快手二面(4.10)

  1. (来自TeamLeader的压迫,压力拉满了,凉经)自我介绍,介绍一下项目

    阿巴阿巴……..

  2. 介绍一下项目难点

    (有一说一,一定要项目在底下的时候就复盘好/讲好项目难点,本来想的好好的介绍技术选型问题,结果一张嘴就直接开始胡说)再熬两天迟早得死在这里,今天状态奇差

  3. 优惠券数据超发的问题

    张嘴就死,md…….直接把异步线程池都整上了(好像也没问题,出大问题了)

  4. 还有一个如何进行确定是不是有人重复领取了

    答曰:实现规则类,MQ重复消费,全局唯一id

  5. 如何保持数据的一致性

    直接吟唱redis和数据库的一致性

  6. 如何保持数据库的准确性

    直接开始吟唱kafka……..(能看得出面试官大为震惊…….”你kafka咋保证数据的准确性的?”),继续绕,我觉得使用kafka保持它的顺序……..md羞耻死了,然后往深里面讲了一下….

    (4/13刚看到分布式id……本来异步进行生成优惠券码就是保证了准确性)

  7. 线程池的相关概念

    八股盛宴,初始化线程池的过程

  8. 行, 再问一下Java,(又是HashMap),我真是服了HashMap的扩容咋阔我都给忘了…..qwq

  9. 再问一下SpringBoot的自动装配,三个注解也忘光了,就说上了个autoconfiguraion也栓q

  10. 再问一下你知道的哪些锁,终于爽了一会,搬回一局

    基于AQS的Schronoized,ReentrantLock,StampLock,Semaphore一起拉出来狠狠的进行装了一番

  11. 锁的升级过程

    更爽了….再次吟唱

  12. 来了一道反转链表…..结果有的b就只能写出非递归……..想来两锤

  13. 万一过了,什么时候能来…

    继续六月底…….

  14. 反问: 哪个部门?(海外电商)对于实习生的培养(好),好!

果然二面是名不虚传的压力面,给的强度上满了,一面有互动,二面只有嗯,行,好,我知道了…….继续38分钟解决战斗,太亏贼了……行吧,快手再见……

快手(质量效能组)

快手一面(5.27)

  1. 讲一下两个项目

    阿巴阿巴……

  2. 讲一下你理解的redis和mysql

  3. 为什么redis可以基于内存,如何保证数据不丢失?

    rdb或AOF?

  4. Tcp和udp的区别是什么

  5. 负载均衡原理

    想不起来,没好意思说,就提了几下负载均衡的算法

  6. java中避免死锁的方法

    就说上来了个锁在Java中避免死锁是一个重要的编程任务,特别是在多线程编程中。以下是一些常用的方法来避免死锁:

    1. 避免嵌套锁
      尽量减少一个线程持有多个锁的情况。这样可以降低发生死锁的风险。

    2. 锁的顺序
      确保所有线程以相同的顺序获得锁。例如,如果线程A和线程B都需要锁L1和锁L2,那么确保它们总是先获取锁L1,再获取锁L2。这可以通过定义全局锁顺序来实现。

    3. 使用超时尝试获取锁
      使用tryLock方法代替lock方法,这样可以设定一个超时时间。如果无法在超时时间内获取锁,线程可以放弃获取锁,从而避免死锁。示例如下:

    4. 避免长时间持有锁
      锁的持有时间越长,发生死锁的可能性越大。因此,应尽量减少锁持有的时间,仅在需要的时候持有锁,并在完成后立即释放。

    5. 使用更高层次的锁管理机制
      使用Java并发包中的高级并发工具,例如java.util.concurrent包中的Lock, ReentrantLock, ReadWriteLock等,它们提供了更灵活的锁管理机制。

    6. 检测和预防死锁
      实现死锁检测机制,监视线程获取锁的状态,如果检测到死锁,采取适当的措施(例如中断相关线程)。一些工具和库可以帮助检测死锁,例如JConsole和VisualVM。

  7. //括号匹配
    //大喊我是傻逼
    import java.util.*;
    public class Main {
        public static void main(String[] args) {
            //String str = "niin"; // 不是真有傻逼这样写
            String str = "((())))";
            Deque<Character> stk = new LinkedList<>();
            for(char c : str.toCharArray()){
                if(c == '('){
                    stk.push(')');
                }else if(c == '{'){
                    stk.push('}');
                }else if(c == '['){
                    stk.push(']');
                }else if(stk.isEmpty() || stk.peek() != c){
                    break;
                }else{
                    stk.pop();
                }
            }
            boolean flag = stk.isEmpty();
            System.out.println(flag);
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    8. 大文件传输用udp还是tcp

    9. ```sql
    --A一个表name,id,socre
    --B一个表id,major
    select A.name,B.major
    from A
    join B on A.id = B.id
    where A.score > 60
  8. 反问: 部门,效能开发,偏向于开发是吧

快手的一面果然还是一如既往的高效且温柔,速度极快,就是我的水平太差了,但是!,她以为我是研究生,最后还挺不好意思的,最后没问什么就直接给我过了(38min)

快手二面(5.28)

  1. 老生常谈,项目哪里来的

  2. 介绍一下项目,什么是构建索引,啥都不懂,我真的服了

  3. 优惠券项目的流程

  4. 平时都会什么,java,sql,linux,中间件

  5. 来道题,判断ip是否有效(题写的依托狗屎)

  6. 反问: 是否偏开发

    没意思,感觉不会中间件,问的东西都很无聊,面了五分钟我就想放弃了,最后强撑着面完了,讨厌女面试官(44min)

美团(到家)

美团一面(4.11)

  1. 讲一下项目,项目中的难点

    阿巴阿巴…….

  2. (开始八股),了解java知识,讲一下ArrayList和LinkedList的区别

    底层区别,实现的接口,插入复杂度讲了一大堆

  3. 解决hash冲突的方法

    hashmap中使用的拉链法,还有地址探测法

  4. 讲一下拆包和装包

    八股盛宴,讲了下

  5. 知道optional吗,

    讲了几句class类中的泛型好像见过,不知道……(接着普及了一下,空指针处理的)

  6. 讲一下Spring中的常见的部件(还是包装什么的,忘了)

    讲了一下有什么@component@data@controller,可以进行从上往下进行注入

  7. 知道jvm么,讲一下jvm中常见的参数

    (神参数,一丁点也想不起来),就说了一下线程的状态转化(md,真离谱,想到了-xms-xmx了,不敢说)

  8. 讲一下线程池,线程池的初始化

    core,queue,max,进行注入的过程,还有keepAlive之类的巴拉了一会儿

  9. 讲一下线程池的调优

    这问法有点迷惑,(讲了一下发现就是如何进行初始化线程池的数量)cpuN+1,io2*N(结果他还讲反了,现场想纠正,一想算了)

  10. 讲一下mybatis中的横杠和井号啥的区别(应该是这个问题)

    直接就说没学过

  11. 来问个mysql的知识吧,什么是sql注入

    开始瞎说(听不下去了打断施法),最后提起hacker的做法,瞬间想到峰神讲的黑科技,过去的跳过密码的做法,然后就插入了几句()

  12. 讲一下redis

    计算机中的cache,实现数据处理速度不一致的问题

  13. 再讲一下kafka

    处理redis和mysql不一致的问题

  14. 做题,一道链表交叉插入的问题

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /**
    有链表l1->l2->l3->l4.....->ln-1->ln
    进行改变链表的结构
    l1->ln->l2->ln-1->l3->ln-3.......
    */
    /**
    我的做法全局翻转直接翻转再插入
    */
    /**
    面试官改进了一下,找到中间节点再进行插入,我的做法会改变链表的结构
    */
  15. 最近看什么书,(直接信息论+马尔科夫链开始吹牛逼)(感谢Garfield)

  16. 讲一下了解到的大模型

    chatgpt,sora1,sora2,vercel之类的

  17. 反问:进去公司对于实习生的要求(导师一对一,会干活),另外给我讲了一下部门的情况,偏向开发的测试,而不是单纯的点点点

总结,jvm比预想中的差一些,有些细节抓的还是不够,面试官反馈挺好,美团果然面试舒服,三十八分钟

美团二面(4.12)

  1. 自我介绍….

    介绍了一会儿,稍微聊了一会儿(感觉面试官真的很温柔)

  2. 直接从java开始入手,项目中用到了哪些集合的框架,简单的介绍一下

    使用了HashMap进行对于优惠券的增删改查,其次使用到了List进行对于优惠券的redis和数据库的添加

  3. 提到了List,简单的介绍一下你所知道的List

    反复的八股吟唱,ArrayList,LinkedList,继续底层,插入实现(还问了一下使用的场景),再次进行了吟唱还提说到了线程不安全,(线程安全的你知道哪些)copyonwriteArrayList,顺便讲了一下原理,(为什么不使用),我觉得可以从上层进行避免,开销大

  4. 讲一下java中的error和execption

    爽文,夸夸输出(还有一道场景题,有点忘了)

  5. 讲一下java中的io,你有没有用到

    项目中进行dump文件,字符流字节流都讲了一下

  6. 讲一下HashMap

    继续从底层开始讲起,什么扩容啊之类的都一起讲了,(再继续深挖了一下)讲到了什么loadindex

  7. 聊到了线程,线程池的核心参数

    爽文,再次进行吟唱,加入线程池的过程

  8. 顺便问了一下,如果线程池饱和了应该怎么办,

    进行abortpolicy,还有进行callable自我进行调用,(其实是callerrunspolicy)(还有哪些)想不到了

  9. 进行拷打mysql,看你写了mysql的调优,来讲一下吧

    首先进行查看log文件,我们可以知道问题出在了哪里,其次我们可以使用explain语句进行查看是否走了索引,核心点在于是否走了索引

  10. 如果我们发现了所有的检索我们都走了索引但是查询还是很慢应该怎么办

    我觉得应该可以进行分表分库,看得出来不是很满意,(还有呢),我觉得从数据持久层上来说,我们进行查询的时候我们可以进行对于binlog进行增量监听,这样可以使得我们进行,其次我们可以再业务执行逻辑的时候我们可以进行异步或者同步的进行更新查询数据(面试官: 实际上我们可以进行构建一个结果表)

  11. 讲一下Spring中的aop,什么是动态代理

    (卡卡卡卡卡)卡死了,早上明明刚看过的,解释了一下aop的功能,使用,但是讲解原理的时候,疯狂的进行卡顿,动态代理jdk,和cglib都讲了,但是实现给忘了

  12. 你说你的项目中使用到了binlog,binlog中的主从延迟是如何进行解决的

    八股老知识点了,真服了,就想起了一个延迟读取,现场乱说了一个同步读,(最后面试官补充了进行直接走主库)

  13. 项目中的难点有哪些,如何进行解决

    继续进行吟唱架构

  14. 那么你在架构的技术选型的时候应该也遇到了选型的问题,举个例子,

    开始吟唱redis和数据库保持数据一致性的例子,四种不同的技术选型,各自的优劣,为什么进行选择,一套组合拳打爽了

  15. 不问技术问题了,开始问如何应对压力

    (突然有一个老师闯入,开始给老师道歉…….)继续面试,脑子直接不清楚了,天生乐天派,做好最坏的打算,然后直接开始用力

  16. 进入反问环节(继续对于实习生的培养)公司导师制,简单的进行bug检查…..

  17. 简单的介绍一下到家,顺便提问了一下,我投的base不是成都吗

    介绍了一下到家,然后问我有没有地域的要求(开口就说没有绝对没有,面试官你的base是哪里),北京,(北京好啊,我也喜欢北京…….内心os:真卑微)

  18. 几轮面试(就这两轮)

  19. 最后问了什么时候最早能来,还有有没有接收到别的公司的offer,然后就进行再说了一下他们的部门是开发,并不是简单的测试

美团的温柔可算体验到了,二面的面试官真的很温柔,比快手的二面的压力神好多了,反馈感觉十分良好,全程四十分钟,没有手撕,希望oc

美团(平台直播)

美团一面(5.7)

  1. 项目介绍? 怎么搞的项目,来介绍一下,你负责的哪一个模块

    优惠券领取微服务.优惠券领取的过程,用户如何进行领取在领取的过程中如何进行写redis,如何进行操作,对哪些实体类进行了操作…….(内心os,一番拷打人麻了)

  2. 介绍一下java有哪些数据类型

    八种数据类型,六种字符型byte,int,long,short,double,float,char,boolean

  3. 介绍一下你了解的异常

    error,execption,….巴拉巴拉一大堆,有以下情况

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    try{
    return 1;
    }catch{
    return 2;
    }finally{
    return 3;
    }
    /**
    1. 正常情况下如何进行执行
    1 3
    2. 异常情况下如何进行执行
    1 2 3
    */
    int temp = 1;
    try{
    System.out.println(temp);
    //int i = 1 / 0;
    return ++temp;
    }catch{
    System.out.println(temp);
    return ++temp;
    }finally{
    System.out.println(tmep);
    return ++temp;
    }
    /**
    正常1 1 3
    异常1 1 2 3
    */
  4. 介绍一下ArrayList?读过源码吗?

    object[]数组,实现了什么接口,查询效率,O(1),为什么O(1)??????(实现了RandomAccessInterface),所以为什么执行get方法的时候是O(1)的时间复杂度(好似听不懂人话一样)

  5. 介绍一下HashMap?读过源码吗?

    巴拉巴拉讲了一大堆,讲一下get方法(卡在了n-1 & hashcode之后应该怎么办)

  6. 是否是线程安全的? 为什么?jdk1.8

    不是(数据覆盖)后面又改口了,真是服了

  7. 看你用了很多Redis,来讲一下Redis的数据结构你知道的有哪些,来讲一下

    5 种

  8. 来讲一下zset底层实现

    zset底层是跳表,除了跳表还有什么数据结构(人麻了)

  9. 来讲一下Redis中Hash的底层实现

    (不知道)

  10. Redis的延时队列实现过吗,如何进行删除过期键

    汪汪汪,已经疯了哈哈哈哈哈,懒汉加定时任务

  11. 挺了解的话来挑一个你熟悉的Redis的方面

    Redis集群(来说一下你对于Redis集群的认识),主从,Sentital,Cluster,巴拉巴拉扯了一大堆,讲到Cluster的时候说了一致性hash,和哈希槽,说了一下一致性hash槽的问题,离谱的来了(如何进行判断hash槽所属于的节点)

  12. Mysql中InnoDB中的索引结构有哪些

    不支持Hash(是不能用还是不支持)B+是innoDB使用的,还有b-tree,比较一下(b-tree和b+tree),b-tree在叶子节点既保存索引又保存数据,b+tree只有在叶子节点上保存数据,其余的节点上保存索引,从性能上来说,B+tree更加稳定

  13. (a,b,c,d,e)
    select *
    from table
    where b = ? and c = ? and d = ?
    --能否进行使用索引(不能)
    --撤了
    select *
    from table
    where a = ? and b > 10 and c = ?;
    --能否进行使用索引(不能)
    
    1
    2
    3
    4
    5

    14. 来道算java

    ```java
    //反转局部链表

真的好难,目前为止问的最深的一次,哥们我大三啊,我又不是博三,一直问到一个字都说不出来….md,给哥们拷打的到最后连反问都问不出来了,时间一长脑子容易断片,项目细节还是太差了,继续寄,btw,面试官很有礼貌,但是不如测开的面试官会进行提醒哪些部分出问题了(1h05min)

腾讯(WXG)

腾讯一面(4.23)

  1. 自我介绍

    啊吧啊吧…..

  2. 深挖项目

    巨细无比,汗流浃背

  3. TCP的滑动窗口? UDP的滑动窗口

    我os:(UDP滑动窗口?)

  4. 进程到内存的过程

    我os:??????

  5. 讲一下多路复用io,select,poll,epoll,select 和 epoll区别

    终于爽了一把,科班爽文

  6. 进程间的通讯方式

    就说了四种,还名字说错了一个……(用过哪些),select,samephore,(select有哪几种类型)开始胡说

  7. linux如何查看服务端口状态

    ????

  8. 来道算法(大数相加)

  9. 反问?已经知道寄了,不敢问了

最汗流浃背的一次,再也不想来腾讯了…..恐怖如斯,唉(45min)

腾讯(广告部门)

腾讯一面(5.21)

  1. 项目中的路由选型问题,为什么使用zuul而不使用gateway

    乱说一通……

  2. java中的数据类型

    少了一个,md,跳了

  3. 索引的类型有哪些

    就说上了个聚簇和非聚簇(如何进行语句优化)巴拉巴拉,结果自己给自己挖了一个分析器的坑

  4. java中的类有哪些

    (内心os)巨巨巨尴尬,md为什么他不说集合类,最后反应了半天才反应过来

  5. 网络的协议有哪些,你知道的,smtp协议是什么?

    巴拉巴拉

  6. 讲一下路由寻址在哪一层

    ip秒了,详细的吹了一下

  7. springMVC的流程

    下午刚面还没来得及复习就又被拷打

  8. io,select,poll,epoll讲的依托狗屎

  9. JUC讲一下实现

    锁,老本行了

  10. finalize和finally的区别

    秒了

  11. 反问:工作强度,部门是用java吗

不开摄像头!有被冒犯到,没啥响应,像是kpi,腾讯每日无缘,面试起来真难受,别晚上面了,恶心完了

腾讯云智(数据库SaaS)

腾讯云智一面(5.16)

  1. 自我介绍

    巴拉巴拉…….

  2. 来讲一下操作系统的概念,来讲一下程序是由数据结构和算法组成这句话中的数据结构和算法的意思

    操作系统就是提供给用户管理硬件的软件之类的巴拉巴拉……数据结构是提供了一个对于内存的便利操作…..巴拉巴拉(知道哪些数据结构),数组链表,树,图,hash(数据结构知道的算法有哪些)dijistra,prime,KrusialCal

  3. 讲一下HashMap,解决冲突的方法

    巴拉巴拉

  4. 讲一下排序,分治算法有哪些,二分的实现

    快排,归并,(大数据如何取出热点数据),topk(感觉讲的有点迷惑,最大堆)

  5. 来java,讲一下io,讲一下多线程,讲一下JUC

    爽文,狠狠的讲了一番从Synchronize,到AQS,到volatile到五种io,感谢Lei Wang,这点真的受益匪浅QAQ

  6. 如何保证线程的有序性

    要确保线程执行的有序性,可以采取以下几种方法:

    1. 同步机制: 使用锁、信号量、互斥量等同步机制来控制线程的执行顺序,确保某些关键代码段只能由一个线程执行,从而保证执行的有序性。

    2. 等待/通知机制: 使用条件变量或者其他等待/通知机制,让线程在必要时等待某些条件的满足,再由其他线程通知其执行,从而控制线程的执行顺序。join

    3. 线程调度: 在多线程环境下,操作系统会对线程进行调度,可以通过设置线程的优先级或者其他调度策略来影响线程的执行顺序。

    4. 使用同步队列: 使用队列等数据结构,将任务按照执行顺序排列,然后由线程按照队列的顺序依次执行任务,从而保证执行的有序性。

    5. 使用线程池: 使用线程池管理线程的执行,通过控制线程的启动和关闭顺序,以及任务的提交顺序,来保证线程执行的有序性。

    这些方法可以根据具体的场景和需求来选择和组合使用,以确保线程执行的有序性。

  7. 知道哪些数据库,除了关系型

    Mysql,sqlserver,Oracle,Nosql:mongoDB,Redis

  8. 数据库的优化

    1. 表结构的优化,分表分库,读写分离

    2. explain进行sql语句优化,读哪些字段,type,extra

    3. 从数据库缓存进行优化

    4. 从硬件进行优化

  9. 讲一下,从技术选型和项目的任务进行介绍

    SpringCloud+zuul(网关展开)+feign+Hystrix,加缓存和数据库如何进行保证一致性

  10. (换面试官讲项目),分布式事务和分布式锁的理解

    卡壳

  11. 讲一下定时任务和清除的实现

    @Schduled 和 redis中使用expire进行随机时间进行删除(这里可以引入分布式事务)

  12. 讲一下第二个应用为什么使用hashmap进行构建索引,而不是用B+tree

    这里应该说的是Hashmap可以实现精准匹配的,最后好进行设置规则

  13. 手撕单例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //写了个双重锁还有没进行实例化
    public class singleTon{
    private volatile static singleTon uniqueInstance;
    singleTon(){};
    public static singleTon getUniqueInstance(){
    if(uniqueInstance == null){
    synchronized (uniqueInstance){
    if(uniqueInstance == null){
    uniqueInstance = new singleTon();
    }
    }
    }
    return uniqueInstance;
    }
    }

给哥们三个人轮番拷打,我真的服了,开头直接对着简历一个字一个字的问,有点哈人,不开摄像头太不习惯了,自己对着自己叭叭叭,但是态度挺好还知道好的好的(1h)

腾讯云智二面(5.20)

  1. 博辉在吗,来自我介绍一下内心os:必须得要单独夸一下,这也太温柔了,哭死

    阿巴阿巴…..

  2. 来说一下未来三年的规划(比如说一下未来想要去的城市,还有怎么打算的之类的)

    西安.本来网络是要做运维的,但是我觉得还是后端更加具有挑战性,巴拉巴拉

  3. 上来就来了一道场景题,如果有无限插入的数据,我们应该如何提取出最大的一百个数

    张嘴就死了,居然有傻呗说了最大堆!!!!淦,最后诱导了一下说了最小堆

  4. 说一下如果有一个pub-sub队列,如何在list中进行实现

    ………再次重申!!!!我是傻逼!这么简单的问题也张嘴就开始胡说了

  5. 介绍一下你学校里面学了什么,计算机基础课应该也学了吧

    我们学院的开课情况是,网络工程实际上是软件工程,除了编译没学其他的都学了

  6. 学过数据库嘛,学了哪些东西

    查询,数据库的索引之类的都是自学的

  7. 我看你使用了kafka,是实际使用过还是学了理论

    用过,然后介绍了一下底层的结构,然后大概说了一下使用的流程

  8. 介绍一下项目

    极其的舒爽,疯狂巴拉巴拉

  9. 说一下有读研的打算嘛,为什么不读研

    ai太强了,不走算法没有竞争力,还是想要进行沉淀

  10. 什么时候能来,能来实习多久

    实习六个月,六月二十号来,(学校有课嘛)没课了,专心实习(姿态很低了)

  11. 反问: 咱们的部门是什么

    数据库Saas,用来提供云服务的

腾讯总部总监面!!!!巨佬,巨巨巨温柔,面了十多次第一次见这么温柔的,许愿oc,真的要掉小珍珠了,哭了,还有问我有没有对象,hhhhhhh,笑死我了(20min)

腾讯云智加面(5.22)

  1. 自我介绍

    阿巴阿巴

  2. (开始痛苦的一个小时),如果在你写redis进行宕机的话,会有什么情况,如何进行解决

    从redis中的持久化的角度来说的话,我觉得可以进行开启aof或者rdb(具体一点),因为我们知道在写的过程实际上会先进行读取命令,所以我们可以对于log文件进行操作

  3. 来介绍一下你的服务为什么写在redis中,为什么不是mysql中

    实际上进行对于写的时候是写在mysql中的,我觉得可以进行

  4. 介绍一下领取优惠券的流程

    爽文,开始叭叭

  5. 介绍一下,如果在写入redis和数据库的过程中服务宕机了应该怎么办

    从持久化的角度上来说我们可以进行回滚,重点保持redis和mysql中的数据的一致性

  6. 讲一下结算微服务

    巴拉了一下,直接说忘了

  7. 你的项目中使用到了kafka吗,在你的项目中的作用是什么

    解耦(实现无关业务),异步(优惠券进行过期的时候)

  8. 讲一下如何如何进行实现分布式锁

    继续装

  9. 讲一下为什么两阶段进行提交

    分发微服务进行调用结算微服务

  10. kafka的结构介绍

    producer,broker,topic,partition,consumer,分区巴拉巴拉(kafka为什么高可用)

  11. redis为什么快

    基于内存,特殊的数据结构优化,多路io服用!!!!!!(想给自己来两巴掌),什么是多路复用,把kafka的零拷贝讲了半天!!!!!!

  12. 第二个项目进行拷打,如何实现的

    binlog-connector

  13. 讲一下binlog的流程

    写binlog,建立io,之类的

  14. 后面还问了什么细节上的实现之类的,狠狠的装了一番

  15. 如何进行理解微服务(说的有点差),这两个项目的收获是什么

狠狠拷打项目,拷打的口干舌燥,一个小时单口相声,面的头红耳赤,最后详细的介绍了一下部门,还不错(50min)

腾讯云智HR面(5.28)

  1. 简单的自我介绍一下

  2. 对于前三轮面试的部分有哪些不足和优势

    优势: 项目,职业规划回答的还不错

    劣势: java的相关的基础知识还是有一点差

  3. 对于部门的了解有哪些

    属于CSIG事业部,对于腾讯进行对接,数据库SaaS部门对于企业级开发比较核心,能学到很多的东西

  4. 成绩?

    rank50%(就这还有被冷嘲热讽一下,我真的坠了)

  5. 介绍一下项目,哪里来的

    腾讯云架构进行选型

  6. 中途遇到了错误进行如何解决?

    看log文件,为什么不进行别的方法解决.(抛出异常费时间)

  7. 学到了哪些知识?

    企业级开发的全流程,规划开发(还有哪些项目) 没有进一步的打算,打算进行部署上线,k8s(夸了一下,说就应该有始有终)

  8. 有考研的打算吗?为什么不考研

    老话术了

  9. 有哪些厂的offer,为什么不选测开,你觉得测开对于开发的区别是什么

    巴拉巴拉狠狠的夸

  10. 开始拷打?挂了几科,为什么挂科,为什么现在才开始准备找实习(9爷怎么会想起找od的)

    耻辱……QWQ

  11. 介绍了一下公司的待遇,问了一下什么时候能进行入职

面个hr面为啥还有技术问题,真是服了,打了我当头一棒,还有一种无力感,感觉到回答的很好,就是下来复盘的时候发现了还是有很多的漏洞……..(28min)

TapTap

TapTap一面(5.16)

  1. 自我介绍,为什么想要做测开,你对于测试开发的流程的了解

  2. 如何进行测试流程开发,流程是什么,如何理解黑白盒测试

  3. 了解什么是测试流程板吗

  4. 了解什么测试工具?

    postman,jmeter

  5. 什么是压力测试,什么是负载测试

  6. 如果要进行一个微信登录界面的测试你应该怎么做

    我觉得这是一个形式化验证,我们可以进行对于八种情况进行测试

  7. 如果字符串长度为10,我们应该如何进行测试

    我觉得可以针对10 和 11 进行测试

  8. 讲一下Tcp的三次握手

    巴拉巴拉,还有什么是流量控制(巴拉巴拉)

  9. 讲一下mysql,什么是内连接,什么是外连接

  10. 讲一下优惠券项目的定时任务的实现

  11. 了解过自动化测试吗

    了解过,pytest(插了一嘴,我想要做的效能工具的开发),然后秒不想聊了

小姐姐很温柔喵,就是对着八股问我真的服了,问了几句瞬间就没有了聊的欲望,还是all in backend(●ˇ∀ˇ●),测开不适合我(24min)

精灵云

精灵云一面(5.21)

  1. 自我介绍

    阿巴阿巴,有实习经历嘛

  2. 讲一下java中的关键字(public,protected,private)

    巴拉巴拉

  3. 讲一下static,final,syncronized,volitale(分开问的)final修饰方法中的参数会怎样,static的原理,syncronized的实现原理,volitale的原理

    讲了一大堆不想复盘了

  4. 讲一下hashmap的get和put操作

    巴拉巴拉,讲的还是有点差

  5. 讲一下你对于树的理解,平衡二叉树,二叉搜索树,红黑树巴拉巴拉

    一坨狗屎

  6. 讲一下你对于Spring,Spring Boot,Spring Mvc还有Spring Cloud的理解

    嫌弃我的八股背的太六了…….又一次死到了MVC的dispatchHandler的过程上了,我的问题…..

  7. 讲一下对于数据库的理解

    使用过JPA(下去学习一下Mybastis,企业很常用)

  8. 反问: 什么是docker云部署

第一次面小厂,尽管面试官心直口快,但是真的学到了不少的东西,获益颇丰,了解到了自己的java基础还是差的挺远的比以前的面试官更能了解到自己的不足

58同城

58同城一面(5.22)

  1. 问了一下个人相关的经历

    巴拉巴拉

  2. java的集合类

    collection(list,set,queue)

  3. 什么是依赖注入(DI)

    乱叭叭了一通,ans: 依赖注入(Dependency Injection, DI)是一种设计模式,也是Spring框架的核心概念之一。其作用是去除Java类之间的依赖关系,实现松耦合,以便于开发测试。

  4. 讲一下你知道的设计模式

    我真就服了,今天脑子像断弦了一样

  5. 数据库用的怎么样

    只用jpa,会写select语句

  6. 如何进行理解java线程

    线程的概念巴拉了一下,线程安全

  7. 如何进行理解堆和栈(堆中的cms的处理流程是什么)

    初始标记(Gcroot进行瞬间关联),调用finalize方法,并发标记,重新标记(需要stop the world),并发清除

  8. 讲一下分布式锁,如何进行实现

    秒了,项目列举了一下,还是不太熟

  9. 你熟悉哪些方面,列举一下

    网络编程(被diss了)

结束的时候面试官真的讲了很多东西,东北面试官真的很实在,一个人从求职规划,如何准备,给足信心,之类的说了很多的东西,问的东西看起来很基础,确实很考验个人对于问题理解,讲了如何进行准备项目之类的,伟大,无需多言,目前排名第一的面试官(30min)