• 2023-10 字节跳动面试整个过程 golang营销服务开发岗位


    • 面试整个过程大约1个小时
    • 回答的中规中矩吧 很多问题回答的不具体 难受死我了
    • 非常简单的算法题
    • 下面列出来了面试步骤
    • 这里面有一点就是面试官本来想问问我数据结构这一块的问题 但是我说不太熟悉 他就没问了
     1. 简单介绍个人信息 略
     2. 介绍简历上的项目 略
     3. 什么是分布式事务  主要用来干什么
     4. 什么是数据库事务  为什么要用到事务
     5. redis数据类型有哪些
     6. redis持久化简单介绍有哪几种方式 有什么区别
     7. redis热数据简单讲一下
     8. 讲一下你在项目数据迁移过程中 怎么保证数据不会丢失 或者说 新数据跟老数据不会出现丢失或重复
    	在说一下服务端重启完成后使用新的数据库链接会出现什么情况
       (场景就是线上一直有项目在输出数据,你同时又在迁移数据到新的数据库,
        迁移完成后,业务服务端会重启 因为使用新迁移的数据库链接)
     
     9.  什么是聚簇索引
     10. mysql存贮数据用到的是什么数据结构 有什么特点
     12. 从浏览器访问www.baidu.com 这从本地到网络访问具体步骤介绍一下 
     13. 讲一下tcp/ip三次握手
     14. 算法题(有时间限制的 到了一小时面试时间就不能写了)
         按顺序打印1-100数字,要求有生产者跟消费者 下面是我写的 
         面试之前在网上刚好看了一下消息队列实现过程 直接稍微改动了一下代码
         写的可能不是最好的方案 如果有更好的写法欢迎私信我 给我康康
         
    	本来这种简单的算法 面试官是考查我对channel 的熟悉程度 
    	结果我没用到channel 
    	还有就是我应该用协程生产和消费的 这里都没用到 
    	算法虽然是实现了 
    	但这不是面试官想要的结果 
    	因为面试时间有限 
    	在不写就没机会了
    
    type Goqueque struct {
    	stack []int
    	back  []int
    	lock  sync.Mutex
    }
    
    func newGoqueque() Goqueque {
    
    	res := Goqueque{
    		stack: make([]int, 0),
    		back:  make([]int, 0),
    	}
    	return res
    }
    
    func (g *Goqueque) send(x int) { //生产
    	g.lock.Lock()
    	defer g.lock.Unlock()
    	g.stack = append(g.stack, x)
    }
    
    func (g *Goqueque) pop() { //消费
    	g.lock.Lock()
    	defer g.lock.Unlock()
    
    	for len(g.stack) != 0 {
    		val := g.stack[len(g.stack)-1]
    		g.stack = g.stack[:len(g.stack)-1]
    		g.back = append(g.back, val)
    	}
    
    	res := g.back[len(g.back)-1]
    	g.back = g.back[:len(g.back)-1]
    	fmt.Println(res)
    }
    
    func (g *Goqueque) empty() bool {
    	if len(g.stack) == 0 && len(g.back) == 0 {
    		return true
    	}
    	return false
    }
    
    func exec() {
    	g := newGoqueque()
    	for i := 1; i <= 100; i++ {
    		g.send(i)
    	}
    
    	for !g.empty() {
    		g.pop() //打印
    	}
    }
         
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
  • 相关阅读:
    2.最长公共子串
    [Spring Cloud] gateway全局异常捕捉统一返回值
    中国石油大学(北京)-《油气藏经营管理 》在线考试
    每日一练——返回链表的中间结点
    买阿里云服务器,实操搭建nginx+php+mysql+thinkphp5全过程(7)
    隐式类型转换
    【强化学习高阶技巧】Experience Replay经验回报
    简易实现通讯录3.0 (实现文件操作)
    零基础入门JavaWeb——Web基本概念
    苹果入局AI手机 iOS 18将应用AI功能
  • 原文地址:https://blog.csdn.net/weixin_44042863/article/details/133991338