记录面经的第七周

普联科技
 

一面(20分钟):

项目;
SSM框架 IOC;
单例模式;
多线程;
线程间通信;
线程池;
TCP三次握手、四次挥手;
链表有环;
环的入口;
倒叙遍历链表;

解:

  private static  void reversePrint(ListNode node){
        if (node.next!=null)
        {
            reversePrint(node.next);
        }
         System.out.print(node.val+"   ");

    }


递归;
Stack Overflow;
二叉查找树;
快排;
归并排序;

 

二面(30分钟):

上来就是两个智力题,抛硬币吃苹果,捉狐狸。。。蒙了。。。

多线程

synchorinized原理

https://blog.csdn.net/dailingnan0827/article/details/82320796?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2

通信原理(?看我专业是电信。。。)

两道编程题

爬楼梯,
输入a1,a2,...,an,b1,b2,...,bn, 在O(n)的时间,O(1)的空间将这个序列顺序改为a1,b1,a2,b2,a3,b3,...,an,bn, 且不需要移动,通过交换完成,只需一个交换空间。

 

三面(8分钟):

闲聊。。。

二面答得很差,感觉gg。

 

                                              第 二天

蘑菇街凉经

  1. rpc通行原理

解:

RPC 原理:
实现 RPC 的程序包括 5 个部分:User、User-stub、RPCRuntime、Server-stub、Server。

user 就是发起 RPC 调用的 client ,当 user 想发起一个远程调用时,它实际是通过本地调用 user-stub。 user-stub 负责将调用的接口、方法和参数通过约定的协议规范进行编码并通过本地的 RPCRuntime 实例传输到远端的实例。远端 RPCRuntim 实例收到请求后交给 server-stub 进行解码后发起本地端调用,调用结果再返回给 user 端。

stub:为屏蔽客户调用远程主机上的对象,必须提供某种方式来模拟本地对象,这种本地对象称为存根(stub),存根负责接收本地方法调用,并将它们委派给各自的具体实现对象。

  1. mq如何保证消息顺序?

出现不顺序的场景:

解:一个queue,有多个consumer去消费,这样就会造成顺序的错误,consumer从MQ里面读取数据是有序的,但是每个consumer的执行时间是不固定的,无法保证先读到消息的consumer一定先完成操作,这样就会出现消息并没有按照顺序执行,造成数据顺序错误。

一个queue对应一个consumer,但是consumer里面进行了多线程消费,这样也会造成消息消费顺序错误。

保证消息顺序性的措施:

拆分多个queue,每个queue一个consumer,就是多一些queue而已,确实是麻烦点;这样也会造成吞吐量下降,可以在消费者内部采用多线程的方式取消费。

 

 或者就一个queue但是对应一个consumer,然后这个consumer内部用内存队列做排队,然后分发给底层不同的worker来处理

 https://www.cnblogs.com/Mr-Elliot/p/11525484.html

 

  1. rabbitmq与kafka
  2. 分库分表如何分
  3. spring生命周期
  4. mabatis原理

 

                                               第三天

顺丰科技

  1. 项目实现了哪些功能
  2. 怎么设计一个秒杀架构
  3. 项目中用的mysql锁是什么,幂等性?乐观锁?
  4. MQ作用
  5. MQ底层原理
  6. MQ消息丢失/重复
  7. mysql事务特性
  8. mysql默认隔离级别

解;https://www.cnblogs.com/shoshana-kong/p/10516404.html

  1. MVCC原理
  2. 如何查看执行计划 explain 主要看哪些字段
  3. 了解redis集群嘛
  4. 怎么保证哨兵集群可靠性
  5. redis主从复制

https://www.cnblogs.com/qingmuchuanqi48/p/11154182.html

  1. redis缓存一致性问题
  2. 有没有了解过CAP
  3. 分布式开发会存在哪些问题

解:

一致性问题

分布式系统中的一致性指应用系统的一致性和数据的一致性。多个系统之间互相通信,就有可能遇到例如:

(1) 调用超时:系统A调用系统B超时,系统A得到超时反馈,但不确定系统B是否已经处理结束,就会造成不一致。

(2) 掉单:系统A和系统B分别为对方的上下游,如果系统A中存在一个订单,而系统B中不存在,就会导致掉单。

(3) 缓存与数据库的不一致:面对海量的访问请求,我们经常会需要在数据库前加一层缓存,这个缓存与数据库之间如何保证一致性。

稳定的负载均衡

当海量的并发请求过来时,如何保证负载均衡可以稳定地工作并转发请求?

分布式日志

在分布式系统下,用户完成一次调用的日志将散列在多台机器上,那么日志如何追踪?

  1. 了解微服务嘛

 

                                                         第四天

 shine
 

题外话:3月底的时候shopee二面和字节三面挂了,算法和操作系统不怎么好,老师又催,本来想直接结束春招的,最近搞完毕业论文和系统,打算重新冲一下,有幸获得内推的机会,暂时没有笔试

5.5下午qq视频面试,2020应届校招

1.springbean生命周期

2.代码级别的读写分离实现,mybatis插件实现

https://www.cnblogs.com/selinamee/p/7110072.html

3.springboot自动装配

4.事务隔离级别

5.mysql引擎

6.sql优化

7.hashmap,concurrenthashmap(如何线程安全,resize,1.7,1.8的区别)

8.redis数据结构,分布式锁

9.项目

 

 

5.6二面

二面基本都是围绕着项目以及对应的一些实际场景问,也包括你用过的一些东西,会问为什么这样做,比较偏向于实际业务

1.项目,你遇到的比较大的困难是什么

2.mybatis插件,代码级别读写分离怎么做

3.sql优化

优化

4.mq作用,结合场景举例,后面扯到分布式事务,主要是实现最终一致性,结合一些例子来谈,saga,本地消息表,rocketmq半消息

5.es有什么用?线上问题,内存过大、logstash同步问题?我没实际处理过,canal原理

6.布隆过滤器

还有一些比较细的点比如lua的table??其他的忘记了,反正会结合你简历提及的点去问,这场也是qq,不过是语音面试。

感觉面试官经验很丰富,面试体验像一面一样也很棒,后面问的问题也很耐心解答,整场面试33分钟

 

5.7三面

没有技术问题

自我介绍

绩点

职业规划

家庭背景,广州亲戚(感觉是看能不能在广州长期发展)

怎么看b端和c端

有没有了解过我们shein

大概10分钟左右,我之前看的面经,第三面都不是问这些的,没事前准备,答得不好

5.8问了hr,三面挂了,确实答得不好

 

                                                            第五天

vivo提前批
 

之前心烦意乱没有处理好

6月9号的面试

大概面了半个小时

1.面向对象三个特性

封装继承多态,我还加了个抽象blabla;

2.JVM,JVM分区,GC算法,堆和栈的区别(我没答好)

3.进程和线程区别,线程间通信和进程间通信

进程间通信答了一些,信号信号量socket管道命名管道共享内存blabla

线程间通信傻了(其实就是锁,volatile这些,我回答了ThreadLocal,没继续问)

4.项目做了哪些,简单说了说,问印象最深的项目是哪个,

答了个没写简历上的电商项目(太大了……跟着教程学的架构师项目,我哪敢写)

5.安卓会不会

直接说没准备

6.Java和C++区别

没答上来(我觉得这问题问的很随意……我回答了Java没有指针,有更好的框架,天生就是面向对象blabla,标准答案应该再说说GC保证了内存不泄露,还有Java不支持多继承blabla)

 

7.笔试题哪些影响深刻

简单说了说

最后提问,说Java基础要加强……

 

……

…………

………………

……………………

…………………………

………………………………

……………………………………

(杨辉三角懵逼)

感想就是怪怪的。

线程间通信我懵逼了,但是如果真的要问的话,AQS,Synchronized,volatile,ThreadLocal,CyclicBarrier,Themaphore这些我也了解啊;

提到项目时候面试官表示我应该把电商项目写上,但是感觉要是想问的话还是可以问挺多的,我提到了项目用了MySQL,Redis,MongoDB都提到了,一个没有问;

也没有叫我手撕代码;

要说Java基础的话,一些经典题都没问,比如HashMap和HashTable区别、HashMap底层结构、StringBuilder和StringBuffer区别,一个都没问;

也有可能就是我说话太快印象不好吧。

但感觉可能这个面试官对安卓更熟练?

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值