面试复盘7——后端开发

前言

一面(2024-1.25)

首先上来是自我介绍。

(这里自我介绍时候项目只说了技术栈,没有说内容,不知道好不好)

(在校经历说的一点点口语化了)

先问的近期实习经历,和我确认我做的是什么。

实习经历1

1、存到Mysql时候是如何做的格式化?(有无字段提取如何)

有字段提取的实际,从kafka中提取出来来源的信息、目标的信息。(解析json绑定到结构体)

原始存的消息和Mysql存的都是json格式。

Pb+wire,主要是用到了哪些方面?

Mysql存储的消息,是如何制定清理规则。

这个服务的价值(讲了用途、和看日志相比这个服务的方便之处)

(重发功能:可以修改消息再发送。(比如配置错了的情况,直接改了就可以发))

实习经历2

简单问了一下内容就。。

学校项目

问我做了什么。我直说这个项目很水的hhhh。然后就没问了。

和我确定了一下之前用的什么,然后就开始做题了。

代码1

判断一个字符串是否回文。

和之前的[LeetCode-1题](https://leetcode.cn/problems/two-sum/description/)混了一点。。。想的用哈希表。

第一次循环赋进哈希表,第二次循环判断回文即可。复杂度O(N)。

让我优化...双指针那就是,一次循环 也是O(N)。

讲了一下go的goroutine、GMP模型。

代码2

两个goroutine,一个输出奇数一个输出偶数。通过通信,最终输出1-10。

发现很多小的细节还是有不完善... ...代码放这里了,基础操作还是得巩固。

go 复制代码
func main() {
	fmt.Println("begin")
	nums1 := []int{1, 3, 5, 7, 9}
	nums2 := []int{2, 4, 6, 8, 10}
	i, j := 0, 0
	var wg sync.WaitGroup
	chan1 := make(chan int)
	wg.Add(2)
	go func() {
		for ; i < 5; i++ {
			fmt.Println(nums1[i])
			chan1 <- 1
		}
		wg.Done()
	}()
	go func() {
		for ; j < 5; j++ {
			<-chan1
			fmt.Println(nums2[j])
		}
		wg.Done()
	}()

	wg.Wait()
}

夸赞了一个习惯------写代码先把核心写出来,再去完善枝叶。

反问

公司是做什么的、技术栈

聊了些基本情况就结束了

相关推荐
Lee川14 小时前
优雅进化的JavaScript:从ES6+新特性看现代前端开发范式
javascript·面试
Lee川17 小时前
从异步迷雾到优雅流程:JavaScript异步编程与内存管理的现代化之旅
javascript·面试
晴殇i19 小时前
揭秘JavaScript中那些“不冒泡”的DOM事件
前端·javascript·面试
绝无仅有19 小时前
Redis过期删除与内存淘汰策略详解
后端·面试·架构
绝无仅有20 小时前
Redis大Key问题排查与解决方案全解析
后端·面试·架构
AAA梅狸猫21 小时前
Looper.loop() 循环机制
面试
AAA梅狸猫21 小时前
Handler基本概念
面试
Wect21 小时前
浏览器缓存机制
前端·面试·浏览器
掘金安东尼1 天前
Fun with TypeScript Generics:玩转 TS 泛型
前端·javascript·面试
掘金安东尼1 天前
Next.js 企业级落地
前端·javascript·面试