bigo后台java开发面试经验大全

bigo 面试

 

简单介绍

屏幕共享ide写题 三个线程交替打印ABC

CMS(不太了解,就过了)

标记整理和标记清除

java内存模型

并发集合,线程安全的集合

concurrentHashMap怎么实现线程安全的?

偏向锁

InnoDB和Mylsam

int(10),10表示什么 超过可以吗?

varchar和char

CLOSE_WAIT和TIME_WAIT

TIME_WAIT保留一段时间的原因

HTTPS了解吗

Redis了解吗?

发布和订阅

缓存击穿和缓存穿透,有什么方式可以解决?

分布式锁

你觉得哪块知识了解比较深?

springboot请求的过程

反问,部门是做什么的

 

 

 

复盘一下  bigo  java后端开发 二面凉经

 

1. 自我介绍

2. 讲最有挑战性的一个项目(怕被怼不敢讲秒杀系统,讲了一个学校的项目)

3. 项目中有没有网络连接超时的现象。答没有,因为真个系统都是局域网。

4. 项目中的身份认证是怎么做的。项目相关问题。

5. 说一说常用的 linux 的命令。答 cat, ls, cd, mkdir, 看cpu占用率用top, 查看进程用 ps, 搜索文件用 find。

6. 说几个 java 中的不可变对象。答 final 修饰的对象,String 等。追问有没有不可变的数组,回答应该有。

7. 不可变对象是线程安全的吗?答不是,傻了,,,

8. 单例模式懒汉式中除了双重检测还有啥?答synchronized锁,追问还有吗?答没了,还差个volatile

9. try_catch_finally 的 finally 里面加 return 可以吗?答可以。

10. 软引用和弱引用了解吗,区别以及使用场景。

11. JIT了解吗?什么时候使用。答出现重复频次高的代码比如while循环里面等。

12. 举一个不是线程安全的例子。答new对象的过程。

13. ThreadLocal了解吗?原理是啥?答是一个map。追问ThreadLocal中的引用是什么引用类型,盲猜强引用,答错了。。。

14. 说一说线程池的一些参数?然后说说线程增加的过程。

15. 线程池的拒绝策略有哪些?答四种。

16. 怎么把一个任务加入线程池?答了一个execute,还差submit。

17. 那execute和submit的区别?答不知道,返回future,,,

18. CountDownLatch和CyclicBarrier的区别和使用场景?CountDownLatch底层实现?

19. 怎么实现mysql数据库的乐观锁?答不知道,其实秒杀中查询库存可以加一个版本号字段实现乐观锁,没想起来。

20. 在spring事务中如果调用rpc可能会出现什么问题?答rpc会阻塞,导致业务执行慢,没答到点子上,其实是可能导致数据库连接无法正常关闭导致连接池耗尽。

21. 说一下聚簇索引和索引覆盖?

22. 索引失效的场景?答了联合索引最左匹配原则,还有索引参与计算。

23. 问mysql的隔离级别。read committed 和 repeatable read 的区别。答能不能解决不可重复读。追问还有吗?

24. 给了一个 sql ,delete from table where id = 8; 问 假设 repeatable read 隔离级别下并且 id 是主键,会加什么锁?答 record lock。

那 id 是普通索引,会加什么锁?答 next-key lock。那如果 read committed 隔离级别下并且 id 不是索引呢?答 table lock。

25. Mybatis中的 $ 和 # 的区别?

26. 用过kafka吗?答没有,用过rabbitmq。

27. 知道rabbit如何创建网络通信吗?答不知道,应该是在tcp基础上封装了自己的协议。其实是 amqp 协议。

28. 业务上怎么防止 kafka/rabbit 消息的重复消费呢?答rabbitmq有ack机制,其实他想问的是kafka的幂等性。

29. 问 tcp 如何保证不丢包?答超时重传,序列号,拥塞控制,流量控制啥的。被说太笼统了让我好好看细节,,,

30. 问了一个网络安全的东西,答不知道,连名字都没听过。

31. 那就问了RSA和AES算法的区别?答AES是对错加密,RSA是非对称加密。加密算法懂得不多。

 

算法题

给出一个字符串数组,返回所有互为“换位词(anagrams)”的字符串的组合。(换位词就是包含相同字母,但字母顺序可能不同的字符串)

备注:所有的输入都是小写字母

例如:

输入["tea","nat","ate","eat","tan"]

返回

[["ate", "eat","tea"],["nat","tan"]]

 

我的解法是 字典序排序一下,然后 HashMap > 存字典序相同的字符串的列表,输出即可。

 

反问环节

1. 你觉得秒杀系统中有哪些重要的地方呢?面试官答:防止超卖,限流,缓存和数据库的一致性等等。

2. 你觉得为了实现消息队列的高可用,怎么防止消息丢失? 面试官答: kafka靠broker副本机制实现高可用。kafka发送端的消息丢失,有应答机制。kafka官方保证只要接受端不挂接收端消息永不丢失,,,

 

 

数组里找三个数加起来为0   不要另开容器

LRU实现方式

三次握手 能不能两次 如果第三次没收到会怎么样

判断链表是否有环 快慢指针

hashmap的底层实现  扩容时能不能优化

了解epoll select吗

java多态的原理

 

 

0910笔试 /0922面试

【题目都是比较基础的内容,记了部分,不过答得不好】

从输入URL到浏览器显示页面,这个过程发生了什么?

解释一下DNS解析的详细过程;

介绍一下TCP握手的过程;

TCP的可靠性是如何保证的?

线程和进程;

线程死锁的条件?死锁如何检测?

Java实现线程的方式?几种方式的区别是什么?Callable返回值的类型是什么?

线程池的创建方法?有哪些参数?

Java 基本数据类型?各个类型所占的字节大小?

 

思考题:
有一个容量4升的水桶和一个9升的水桶,如何使用这两个水桶装出6升的水?

手写代码:
链表元素倒置:
1>2>3>4 变成 2>1>4>3

 

上来直接撕一个快排

 

锁的升级

排序有哪些应用

段页式存储用到了哪些算法

udp和http各种差别

udp和http报文结构

ACID

死锁的四个条件

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值