来自老司机golang面试官的经验分享:面试你很大几率会遇到的go语言面试题

正在准备golang面试的小伙伴,很荣幸,你能看到这篇文章,希望每一个看到这篇分享的小伙伴都能找到自己称心如意的工作!​ 编程语言类:Go是什么?使用Go编程有什么好处?Go支持类型继承吗?Go支持运营商超载吗?Go支持方法重载吗?Go支持指针算术吗?Go支持通用编程吗?Go是一个区分大小写的语言吗?Go中变量的静态类型声明是什么?Go中变量的动态类型声明是什么?你能在Go中的单个声明中声明多种类型的变量吗?如何在Go中打印变量的类型?什么是指针?break语句的目的是什么?继续声明的目的是什么...阅读全文

2019.04.10 17:36 QFdongdong
阅读:6814 评论:0

一探B站后台架构, 他山之石, 何以攻玉? -- 仅从一个一线Golang开发者的角度谈B站4.22代码

4月22日, B站部分后台源代码因为某愤怒的员工, 被上传至Github. 本文我们不讨论安全, 法律 (根据代码漏洞, 去恶意攻击或者获利是违法的! 我们工作时也要注意代码安全), 我仅从开发者的角度谈谈, 这份代码我们能学到什么? B站Golang生态建设, 代码规范, 工具建设, 技术栈选择, 对于Go在部门或公司的推广又有哪些值得借鉴? 首先必须得说, B站这份代码整体还是不错的, 不是说组件或者基础库多么的厉害, 而是从整体目录分布, 业务代码分布, API易用性, 业务代码风格, 工...阅读全文

2019.04.24 22:47* 七月天_5092
阅读:19133 评论:5

最全BAT算法面试100题:阿里、百度、腾讯、京东、美团、今日头条

第一:复杂度估算和排序算法(上) 1) 时间复杂度和空间复杂度 2)认识对数器 3)冒泡排序 4)选择排序 5)插入排序 6)如何分析递归过程的时间复杂度 7)归并排序 8)小和问题 第二:复杂度估算和排序算法(下) 1)荷兰国旗问题 2)随机快速排序 3)堆结构与堆排序 4)认识排序算法的稳定性 5)认识比较器 6)桶排序 7)计数排序 8)基数排序 9)数组排序后的最大差值问题 10)排...阅读全文

阅读:6279 评论:0

使用Golang的interface接口设计原则

1 interface接口 interface 是GO语言的基础特性之一。可以理解为一种类型的规范或者约定。它跟java,C# 不太一样,不需要显示说明实现了某个接口,它没有继承或子类或“implements”关键字,只是通过约定的形式,隐式的实现interface 中的方法即可。因此,Golang 中的 interface 让编码更灵活、易扩展。 如何理解go 语言中的interface ? 只需记住以下三点即可: 注意: a. interface 可以被任意对象实现,一个类型/对象也可以实现...阅读全文

阅读:4998 评论:1

微服务的断路器实现图解Golang通用版

断路器背景 微服务连锁故障场景 image 在分布式环境中,各个微服务相互调用,当某些情况下,比如后端中间件服务故障、第三方服务中断导致某个服务无限期不可用,短时间无法恢复,则可能会导致连锁故障,最终影响压垮整个业务集群 断路器与重试 断路器模式不同于重试模式,重试模式是使应用程序可以重试操作以期望它会成功,而断路器模式是防止应用程序执行一个可能失败的操作,减少执行可能失败操作的CPU、内存、线程等资源的浪费,从而保证服务的整体可用 断路器设计解析 基于代理模式的断路器 image 断路器相当于...阅读全文

2019.05.15 06:30 布衣_4549
阅读:1615 评论:0

ngrok 内网穿透服务器搭建

服务端以ubuntu16.04为例 在域名管理中添加解析A记录,将*.ngrok与ngrok都指向您的服务器IP。 进入服务器克隆ngrok的源代码 mkdir /ngrok #创建名称为ngrok的目录 git clone https://github.com/inconshreveable/ngrok.git /ngrok #将ngrok源代码克隆回本地 cd /ngrok 创建证书 export NGROK_DOMAIN="ngrok.xxx.xxx" #你的域名 openssl genr...阅读全文

2019.05.21 17:43 亻火子
阅读:869 评论:0

CI/CD初探(docker+drone)

将使用 docker + docker compose + drone + git 实现项目自动部署使用docker可以让drone实现任意语言程序的构建与部署分工docker: 整洁迅速的部署方案docker-compose: 组网和简单容器编排drone: go语言写的基于docker的CI框架流程预览代码提交到gitgit 通知drone应用触发drone服务器运行项目下的.drone.yml如果没有配置clone步骤, drone会运行默认的clone步骤, 并clone到workspa...阅读全文

2019.05.23 17:34* StephenXP
阅读:710 评论:0

Go GraphQL 入门指南 - 第二部分

___注意___:关于 GraphQL 的系列教程的第一部分可以在这里:[Go GraphQL 入门指南 - Part 1](https://studygolang.com/articles/18801) 阅读。 首先,再次欢迎各位 Gophers !在本篇教程中,我们将在上一篇教程中所做的工作基础上进行扩展,了解变更 (Mutation) 的概念,并在 GraphQL API 后端实现合适的数据源。 在上篇教程中,我们了解到 GraphQL 的一些主要的优点,以及它是如何在应用程序...阅读全文

2019-05-24 16:09:59 barryz
阅读:1366 评论:0

Go语言学习——彻底弄懂return和defer的微妙关系

疑问 前面在函数篇里介绍了Go语言的函数是支持多返回值的。 只要在函数体内,对返回值赋值,最后加上return就可以返回所有的返回值。 最近在写代码的时候经常遇到在return后,还要在defer里面做一些收尾工作,比如事务的提交或回滚。所以想弄清楚这个return和defer到底是什么关系,它们谁先谁后,对于最后返回值又有什么影响呢? 动手验证 了解下来,问题比我想的要复杂,不信你先看看下面这段代码输出结果是啥 package main import "fmt" func main() { f...阅读全文

2019年06月29日 JackieZheng
阅读:681 评论:0

Golang笔试题

单选题 匿名函数可以直接赋值给一个变量或者直接执行,这一说法是否正确( A ) A. true B. false 结构体在序列化时非导出变量(以小写字母开头的变量名)不会被encode,因为在encode时这些非导出变量的值为其类型的零值,这一说法是否正确( B ) A. true B. false 下面反引号中的代码,比如json:"x",作用是X字段在从结构体实例编码到json数据格式的时候,使用x作为名字,这可以看做是一种重命名的方式(A) A. 正确 B. 错误 type Positio...阅读全文

2019.07.07 17:28* 蔻蔻哒
阅读:1177 评论:0

Golang 面试题

1、代码(golang) 运行完成后,计算变量的值。 1)d的值是多少? d := make(map[string][]int) d[“a”] = []int{1,2,3} d[“b”] = []int{4,5,6} for _,v := range d { v[0] = 2 } fmt.Println(d) // a:[2 2 3] b:[2 5 6] varr 的值是多少? arr := make([]*int,0) e := make(map[string]int) e[“a”] = 1 ...阅读全文

阅读:1364 评论:0

头条面经-PHP/Golang

一面(约1h) 在面对未知的流量暴增,可以预先怎么处理 如何限流,限流算法,对于ddos攻击怎么处理 PHP数组的底层实现 分布式事务 RPC相对于传统的API调用的优点 服务调度中心的感知与动态上下线 MySQL的索引,为什么是B+而不是平衡二叉树 索引查找在Linux的磁盘上是怎么操作的 聚簇索引相对于B+索引的优点 如何分析SQL执行慢的原因 Redis连接时的connect与pconnect的区别 Redis有哪些结构时间复杂度较高 Redis hash的实现 算法题: 在1个10G大小...阅读全文

2019-08-12 18:32:32 tyloafer
阅读:4737 评论:1

高性能Go并发建议

1.管道chan吞吐极限10,000,000,单次Put,Get耗时大约100ns/op,无论是采用单Go程,还是多Go程并发(并发数:100, 10000, 100000),耗时均没有变化,Go内核这对chan进行优化。解决之道:在系统设计时,避免使用管道chan传递主业务数据,避免将业务流程处理流程分割到对个Go程中执行,这样做减少chan传输耗时,和Go程调度耗时,性能会有很大的提升。案例分析:nsq和nats都是实时消息队列,nsq在客户端端和服务端大量使用chan转发消息,导致性能不佳...阅读全文

阅读:1082 评论:0

从简历被拒到收割今日头条offer,我花了一年时间

从简历被拒到收割今日头条offer,我花了一年时间 <br />图 | 阿曼苏丹国<br /><br />一、印象中的头条<br />二、面试背景<br />三、准备面试<br />四、头条一面电话面(Java+项目)<br />五、头条二面视频面(大数据+项目)<br />六、头条三面视频面(算法+场景题)<br />七、如何通过头条笔试?<br />八、如何准备头条面试?<br />九、一个关于如何进大厂的小建议** 一、印象中的头条<br />**<br />1.老板张一鸣跟我是福建老乡,...阅读全文

2019.08.23 20:12 无精疯
阅读:7202 评论:0

golang面试常考问题

1.golang 1.进程模型 2.读写锁 3.syncMap 4.grpc 5.垃圾回收机制 2.mysql 1.优化案例 2.索引原理 3.docker 1.多步构建, 2.cgroup 4.k8s hpa 5.istio 6.elk 7.五种io模型 https://www.jianshu.com/p/a95bcb116765 8.如何实现分布式锁 9.channel 10.分布式算法 1.一致性hash 2.raft 3.时间轮阅读全文

阅读:1536 评论:0

2019秋招面经大汇总 -Go

【美团】美图-视频一二面https://www.nowcoder.com/discuss/312822【小米】小米Golang开发一面凉经https://www.nowcoder.com/discuss/307825【滴滴、字节、商汤】滴滴、字节、商汤(Golang实习。。。。大四狗。。。。)https://www.nowcoder.com/discuss/302112【哔哩哔哩】B站一面https://www.nowcoder.com/discuss/279935【盛趣】盛趣游戏-服务器Go语...阅读全文

2020-01-29 19:32:47 求职帮主理
阅读:7121 评论:0

Golang sync.atomic 相比 sync.Mutex 优势

sync.atomic Golang 标准库中的 sync/atomic 为开发者提供了对几种简单类型的原子操作函数。这些简单类型包括int32, int64, uint32, uint64, uintptr, unsafe.Pointer。这些原子操作函数有以下5种:增减(Add),存储(Store),载入(Load),交换(Swap),比较并交换(CompareAndSwap)。 sync.atomic 与 sync.Mutex 对比 对比实验源码: package main import ...阅读全文

2020-02-24 21:32:55 WuCh1k1n
阅读:1109 评论:0

Golang三色标记、混合写屏障GC模式图文全分析

原创声明:未经作者允许请勿转载, 如果转载请注明出处作者:刘丹冰Aceld, 微信公众号同名 垃圾回收(Garbage Collection,简称GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的对象,让出存储器资源,无需程序员手动执行。 ​ Golang中的垃圾回收主要应用三色标记法,GC过程和其他用户goroutine可并发运行,但需要一定时间的STW(stop the world),STW的过程中,CPU不执行用户代码,全部用于垃圾回收,这个过程的影响很大,Golang进行了多次...阅读全文

阅读:10063 评论:6

蚂蚁金服6面,成功唬住面试官拿了36K,突然感觉Java面试貌似不太难...

蚂蚁金服-面试前 蚂蚁的面试挺独特,每轮面试都没有 HR 约时间,一般是晚上 8 点左右面试官来一个电话,问是否能面试,能的话开始面,不能就约一个其它时间。 image 全程 6 面,前五面技术面,电话面试,最后一面是 HR 面,现场面。 大佬说技术这方面肯定要掌握好,其实面试题也可以背一背,要是他提前有时间就看一下面试题说不定有些问题就可以回答得更好,可以起个抱佛脚的作用。 注:这边特意给刷到此文的朋友准备了2020最新最全——Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+...阅读全文

2020-10-30 10:32:49 熬夜_不_加班
阅读:1798 评论:1