百度网盘 golang实习面经

全程50min无算法
1. 自我介绍
2. 实习内容拷打(实习时候负责的系统架构,qps,pv,稳定性,性能优化和线上事故处理)
3. goroutine内存泄漏的情况?如何避免
4. 讲一下协程和线程的区别?从多个角度说明,讲一下golang协程是如何调度的,和java线程的区别
5. slice和array的区别,讲一下底层的结构
6. channel的用途和使用上要注意的点,底层的结构是怎样的
7. orm框架的优缺点
8. 操作系统内核态和用户态的区别,何时进入内核态or用户态
9. tcp和udp的区别,他们的报头结构,tcp的三次握手和四次握手的中间状态有哪些
10. https中的TLS/SSL层是用来干什么的,讲一下根证书和证书链和https握手的流程
11. 常见的攻击手法有哪些,讲一下中间人攻击和跨域攻击的原理,跨域攻击主要是利用了浏览器的什么机制

总结:从某个需求开始不断地深挖直到答不上来,面试官水平在线

11.25更新:已挂
全部评论
题解: goroutine内存泄漏的情况?如何避免 goroutine内存泄漏基本上是因为异常导致阻塞, 可以导致阻塞的情况 1 死锁, goroutine 等待的锁发生了死锁情况 2 chan没有正常被关闭,导致读取读chan的goroutine阻塞 如何避免 1 避免死锁 2 正常关闭 3 使用context管理goroutine, 超时结束goroutine 协程和线程的区别 主要的区别在于协程是用户级的并非单位, 不需要进入到内核态处理. 所以协程更加轻量级, 不占用内核资源. slice和array的区别,讲一下底层的结构 array本质是一个固定数组, 内存层面就是一块固定的内存区域,不会改变, 传递的时候是拷贝一份完整数据. slice本质上是一个动态数组的封装,底层指向不是一个固定内存,可以重新指向新的内存,传递的时候底层指向相同的内存. channel的用途和使用上要注意的点,底层的结构是怎样的 channel是golang中协程之间的数据交互的重要工具,相当于与进程内的一个消息队列. 注意点: 最重要的是chan的close处理, 不然很容易出现异常, 1写数据goroutine中调用close, 2不要多次调用close, 3使用信号通知chan close了 底层结构: 环形队列(缓存数据, 无缓存的时候用不上), 读goroutine 队列(链表), 写goroutine 队列(链表), 锁 orm框架的优缺点 orm封装了对数据库的操作,并且自动转换内存数据结构和数据库字段, 优点是方便,开发效率高, 缺点是有些场景性能低, 复杂对像转换处理起来不方便. 操作系统内核态和用户态的区别,何时进入内核态or用户态 内核态: 高权限,执行系统操作,操作资源,调度管理等等 用户态: 低权限,执行用户程序操作 进入内核态: 中断(系统调用, 时间片到期等) 进入用户态: 内核态处理完成,调度用户线程处理程序 tcp和udp的区别,他们的报头结构,tcp的三次握手和四次握手的中间状态有哪些 tcp: 可靠(数据顺序接收, 数据不丢, 数据不重复), 面向连接, 字节流(需要), 性能低 udp: 不可靠, 数据包, 性能高 三次握手/四次挥手 11种状态
3 回复 分享
发布于 11-22 23:46 湖北
能给个timeline吗
点赞 回复 分享
发布于 11-22 17:19 澳大利亚
orz
点赞 回复 分享
发布于 11-22 17:58 广东
怎么问的这么深
点赞 回复 分享
发布于 11-22 20:38 辽宁
链轮和链条之间的传动比是怎么计算的呢?你知道不同齿轮组合对骑行速度的影响吗?
点赞 回复 分享
发布于 11-22 23:43 广东
佬现在收了哪些了
点赞 回复 分享
发布于 11-23 20:01 广西
👻了
点赞 回复 分享
发布于 11-24 13:03 广东
使用的mallchat作为主项目么
点赞 回复 分享
发布于 11-24 13:22 河南

相关推荐

11-19 12:25
已编辑
门头沟学院 C++
一面(11.14)二面(11.15)oc(11.19)-----11.14 一面-----1.2.3项目相关4.有用到c++的atomic吗?5.项目中无锁队列是怎么push和pop的,怎么实现线程安全?6.atomic的内存序问题?7.会写shell脚本吗?8.linux命令,查看进程、内存、磁盘9.设计模式思想、原则、法则10.项目里的单例模式怎么实现的?11.子线程结束后如何通知主进程去执行一个方法?12.c++条件变量知道吗13.线程池中子线程和主进程的消息传递14.智能指针讲一下,线程安全吗,shared_ptr指向的内容是线程安全的吗?15.gdb用过吗,打断点、查看加载的动态库16.动态库和静态库的区别17.虚函数,虚函数表,虚函数指针讲一下18.子类覆盖了父类的非虚函数,将一个子类的指针赋给父类的对象,父类的对象调用该函数,最终会调用谁的19.知道组合吗?继承和组合20.讲一下stl中map和unordered_map的区别?21.一个pair对象是否可以作为map的key?22.stl迭代器了解吗?23.vector动态扩容是怎么实现的?具体的copy行为是用到什么c++特性24.完美转发了解吗25.打开编辑器,写个c++类全程面试体验很好,不懂的问题面试官不会追问,答错的也会耐心讲解-----11.15 二面-----4.智能指针用过吗,了解多少5.程序编译链接过程6.动态库和静态库的区别7.stl中sort函数的实现8.deque的扩容机制9.map和unordered_map的区别10.右值引用了解吗11.设计模式了解吗,讲一下单例模式12.内存泄露怎么检测14.开编辑器,写一个删除vector中指定的元素,再写一个单例模式二面同样体验很棒许愿oc-----11.18更-----今天或明天HR联系!一定要拿下!-----11.19上午更-----HR口头oc——-11.19中午更——-offer邮件
查看31道真题和解析
点赞 评论 收藏
分享
5 35 评论
分享
牛客网
牛客企业服务