秋招面经-帆软-后台开发工程师
一面:
1、自我介绍
2、项目拷打(20min)
3、乐观锁和悲观锁分别有什么特点?以及各自在什么场景下使用?
4、解释型语言和编译型语言的区别?每个分别举两个知道的例子
5、Java有GC,谈谈有垃圾回收相较于无垃圾回收有什么好处?有什么坏处?再谈谈垃圾回收的原理或者说垃圾回收算法
6、数据库中的ACID分别指什么?
7、知道Zookeeper和Raft这些一致性协议吗?
8、你怎么理解数据库中的一致性?
9、消息队列中exactly - once(当前只有一次传递)是怎么做到的?
10、分布式事务的一致性和数据库的一致性有什么区别?
11、编程中的值传递和引用传递有什么区别?Java属于哪一种?
12、什么是死锁?为什么会发生死锁?编码里面怎么避免产生死锁?
13、操作系统为什么有用户态和内核态?哪些操作可以从用户态切换到内核态?
14、计算机网络中的OSI七层模型和TCP/IP四层模型有什么区别以及实际应用中为什么目前都以TCP/IP为主?
15、HTTPS是如何保证数据传输安全的?它和HTTP有什么本质的区别?
16、多线程编程中锁有什么作用?
17、共享屏幕了一段代码,分析线程一和线程二是否线程安全以及线程三一定会退出吗?(见图二)
18、为什么线程三不一定会退出?
19、2024年全年,有100亿行产品销售数据,一共两列字段:商品名和销售金额,如何利用3台及其,算出全年销售金额最多的3个产品?谈谈你的设计思路
20、Java中的HashSet和TreeSet在底层实现以及性能方面有哪些区别?性能上可以说一下增删改查的复杂度
21、arm芯片和英特尔芯片有什么区别?
22、平时自己是怎么学习后端技术的?
23、能说出你最近关注的一个热点技术或者趋势吗?谈谈自己对它的看法
24、假如你在工作中,遇到了一个棘手的Bug,本地无法复现出这个错误,只能出差到客户现场处理,然后到达现场后,发现这个Bug现象很奇怪,一时半会也定位不出来是哪儿的问题,更无法根治这个Bug,客户急得焦头烂额,你这个时候能做些什么?
25、自己是更希望做底层技术还是做上层业务?
26、反问