2019年8月1日

昨晚19点浪潮软件视频面试了我50多分钟

有两个人面的(忽略掉稍微敏感的信息)

第一个人的问题

1、做下自我介绍

2、c语言的内存分布

我回答的这个 可能打的太详细了 他有点不耐烦

3、malloc分配的内存在哪里

4、golang是单线程的吗

开始是单线程 后来1.5左右改成多线程了 默认是cpu核数*2+2 好像

5、golang如何开协程

go关键字+函数

5、golang用的什么版本 什么时候开始用的

开始是1.5 现在到1.12.7最新版 用了大概三四年了

比如1.11 加入了go module 解决依赖问题 确实不错 我们小公司 用go的就俩人 没有那么多障碍 所以一直更新的比较及时

6、c语言写socket的过程

服务端先new一个socket 里面有ip和端口号 然后listen(漏了bind) 然后for循环accept阻塞接收新连接 来一个新连接就new一个socket 开线程处理

客户端简单点 new socket 然后连接服务端

7、tcp分包粘包如何处理

我遇到的一般是固定前导符加长度 数据里面有校验 结合起来使用

(正确回答应该是:1、固定长度 2、特殊符号 3、长度字节开头)

8、有哪些校验

我只遇到过sum求和和crc校验

9、restful怎么用的

我用的比较简单 主要是查询 包括单条和全部 全部要分页 用get方法

新增用post

修改用put

删除用delete

10、如何看待996

有紧急情况应该加班 平时的话我是主流价值观 跟github上的一样

当然这只是理想情况 为了生活 公司要提高竞争力 如果工资够高 都好说

中间hr介绍了下浪潮公司的概况

类似于国企 4万多人 分4个部门(浪潮信息,浪潮软件,浪潮国际) 我们属于浪潮软件 下分7个部门 又属于智慧城市部门 做视频平台

 第二位面试官(一个年轻的小伙):

1、go协程如何异步通讯

用channel 非阻塞的channel 就是个队列(他想要的答案可能是生产者消费者)

2、生产者能知道消息队列有多少元素吗

没这么用过 应该不可以

3、get和post的区别

从tcp层面看 post无非就是多了个换行+body体

他好像很失望 说那么为什么还要分get和post 我说get唯一的好处是可以存储地址 收藏和历史回退用

4、get不同的浏览器处理不一样知道吗

不知道(难道是指中文转码问题?)

5、你参与过goFrame项目?

嗯 我开始自己写服务端 共享变量要自己加锁 后来发现了gf 发现基本跟我写的一样 但是代码正轨很多 就用上了

开始bug比较多 我就联系作者 提交issue 也改过一点代码 现在已经稳定多了 我的项目基本都用的gf里的组件

6、你用过Echarts?

百度的echarts是吧 我刚到公司时做了几年bs开发 做个供热管理系统 需要展示大量图表 当时找了很多 开始用的highcharts 后来百度一个姓林的开发了echarts 发现很强大 现在基本都换成它了

用它哪些组件?

我开始用的都是基本功能 柱状图 曲线图 饼图 还有散点图等 现在我不做bs了 其他人也用了别的类型

7、你用go开发用了几年

大概三四年了吧 小公司同时还负责手机开发 从12年go发布正式版就开始关注了 后来我组织人一起学习 只有我学会了 后来项目写服务端就用上了

又问到底用了几年 我说三四年吧 最早给即墨自来水做了好几个服务端 记得不是很清楚(这个很重要吗)

over 让我等消息

原文地址:https://www.cnblogs.com/zhangjinfu/p/11280324.html