得物 - Go社招一面 - base长沙 - 7.10

alt

  1. 简单介绍一下中台系统
  2. 挑其中一个参与比较多的,有成就感的,有挑战的一个项目,重点描述一下这个项目的业务背景,技术架构,以及我在里面的一个角色
  3. 广告投放完之后,用户点击了广告,你们去抓取数据,为什么要抓取数据呢?你们是广告主,是付了钱的,抖音,快手,广点通他们会把数据按照你们配置的点击链接回传给你。
  4. 项目中遇到过的最大挑战是什么,怎么解决的
  5. go
    1. 遍历一个map的时候,连续遍历多次,中间没有其他代码,顺序相同的吗?
    2. 为什么顺序不同的
    3. 可以对map里面的一个元素取地址吗
    4. go里面的内存逃逸
    5. 发生内存逃逸的例子
    6. 堆栈有什么区别
    7. go里面select用在什么地方
  6. grpc
    1. http2的优缺点
  7. 团队怎么分工的,有版本的概念吗,需求谁提的呢,怎么看待这个分工的问题呢
  8. 代码及场景
func main() {
    panic("xxx")
    recover()
}

一、上面的panic会被捕获吗 给出修改代码

func main() {
	defer func() {
		if r := recover(); r != nil {
			fmt.Println("Recovered from panic:", r)
		}
	}()

	panic("xxx")
	fmt.Println("This line will not be executed.")
}

二、以下代码输出什么

func f() {
    defer fmt.Println("D")
    fmt.Println("F")
}

func main() {
    defer fmt.Println("N")
    f()
    fmt.Println("M")
}

三、 select * from tableA where a = 1; 有一个表 ,里面有一个字段 a(建了一个单字段索引),假如分析发现这个 sql没有走命中这个索引a走的全表扫码,分析一下原因。

  • 为什么当a=1比较多的时候,走全表而不走索引呢?
  • 对于非常小的表,数据库可能会选择全表扫描,为什么?
  • 除了表比较小,重复值多区分度低,还有其他可能吗?(隐式类型转换 )

四、假如有一个库(已经出现性能瓶颈了),库里面有10张表,其中两张表想迁出来,迁到一个独立的数据库里面,有什么思路。

  • 导出数据,再导入数据,再去更新代码中的数据库连接,中间这个过程中写在老库的数据就没有导入过来,不能暂停对老表的写操作。
  • 定期增量备份,会有问题,定时跑的就会有定时的时间差。不管是定时备份也好还是手动导出导入也好,都不是原子性操作,就会有时间差,有数据漏损。
#得物##Golang社招##社招##一面凉经##go#
全部评论
我面试,一道题也没问😂全程在问我想问什么,我都蒙蔽了。
点赞 回复 分享
发布于 2024-08-09 19:23 广东

相关推荐

03-20 10:04
湖南大学
一、Java基础1. HashMap底层原理数组+链表+红黑树,JDK1.8后引入红黑树。初始容量16,负载因子0.75,扩容为原来2倍。线程不安全,多线程推荐使用ConcurrentHashMap。2. ConcurrentHashMap 1.7和1.8区别1.7:Segment分段锁+数组+链表,锁粒度较大。1.8:CAS+synchronized,数组+链表+红黑树,锁粒度更细,性能更高。3. ArrayList和LinkedList区别ArrayList:动态数组,查询快,增删慢。LinkedList:双向链表,查询慢,增删快。4. String、StringBuilder、StringBufferString不可变,线程安全。StringBuilder可变,非线程安全,效率最高。StringBuffer可变,线程安全,效率较低。二、并发编程5. synchronized底层实现修饰方法:ACC_SYNCHRONIZED标识。修饰代码块:monitorenter、monitorexit指令。锁升级流程:无锁→偏向锁→轻量级锁→重量级锁。6. ReentrantLock和synchronized区别ReentrantLock:手动加锁解锁,支持可中断、超时、公平锁。synchronized:自动加锁解锁,使用简单。7. 线程生命周期新建、就绪、运行、阻塞、终止。8. 死锁四个必要条件互斥、请求保持、不可剥夺、循环等待。破坏任一条件即可避免。三、JVM9. JVM内存模型堆、方法区、虚拟机栈、本地方法栈、程序计数器。10. 垃圾回收机制对象存活判断:引用计数法、可达性分析法。回收算法:标记清除、标记复制、标记整理。11. 常见垃圾收集器Serial、ParNew、Parallel Scavenge、CMS、G1。四、计算机基础12. TCP三次握手、四次挥手三次握手:建立可靠连接。四次挥手:断开连接,保证数据传输完成。13. HTTP和HTTPS区别HTTP明文传输,端口80。HTTPS加密传输,端口443,基于SSL/TLS。14. MySQL索引底层B+树,分为聚簇索引和非聚簇索引。遵循最左匹配原则,避免索引失效。15. MySQL事务ACID原子性、一致性、隔离性、持久性。五、项目与场景16. 接口限流方案计数器、漏桶算法、令牌桶算法。17. 分布式锁实现Redis分布式锁、Zookeeper分布式锁。18. Redis缓存问题缓存穿透:布隆过滤器。缓存击穿:互斥锁、热点数据永不过期。缓存雪崩:过期时间随机、集群部署、服务降级。
查看18道真题和解析
点赞 评论 收藏
分享
评论
1
14
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务