当前位置: 首页 > 面试经验 >

360日常1面(估计凉了,答的太差)

优质
小牛编辑
122浏览
2023-03-28

360日常1面(估计凉了,答的太差)

Go语言基础

使用var定义一个结构体能不能引用里面的字段。

答:可以。var user User是可以引用里面的字段的。因为Go语言结构体是一个值类型,也就是说当你声明了一个结构体类型的变量时,实际上是在内存中分配了一块连续的内存空间的,这个空间里面包含这个结构体中定义的所有字段。

Go语言的值类型,引用类型和指针类型

  • 值类型:变量直接存储值,内存直接分配在栈中
  • 引用类型:变量存储的是一个地址,这个地址对应的空间才是正常存储的数据,内存通常在堆上分配,当没有任何变量引用这个地址的时候,该地址就变成一个垃圾,有GC回收。

值类型: 基本数据类型,包括int系列、float系列、bool、string、数组、结构体

引用类型:指针、slice、map、chan(管道)、interface等都是引用类型

len()字段,len出来之后是什么?

答:如果是字符串的话,那么len出来的是字符串的字节数,Go中一个中文在UTF-8的编码下占3个字节。如果是channel的话,那么len计算的是channel里面当前存在的元素个数。如果是map的话也是同样如此。如果是slice的话,求的也同样是切片里面的元素。

make和new的区别

答:

https://sanyuesha.com/2017/07/26/go-make-and-new/

中文字符串如何遍历才可以防止中文乱码问题?


func main() {
str := "我很喜欢你"
// 无乱码
// 下标遍历
for i, v := range str {
fmt.Printf("str[%d]=%v\n", i, string(v))
}

// 出现了乱码
// for ... range遍历
//for i := 0; i < len(str); i++ {
// fmt.Printf("str[%d]=%v\n", i, string(str[i]))
//}

// 无乱码
// 转换为[]rune类型,再下边遍历
strRune := []rune(str)
for i := 0; i < len(strRune); i++ {
fmt.Printf("strRune[%d]=%v\n", i, string(strRune[i]))
}
}

了解Go语言字符类型:

http://www.xnip.cn/view/18.html

切片和数组的区别

看书《Go语言设计与实现》

defer+recovery会发生什么?

http://www.xnip.cn/view/64.html

https://gobyexample.com/recover

计算机网络

http状态码

  • 1xx属于提示信息,表示目前是协议处理的中间状态
  • 2xx表示服务器成功处理了客户端的请求200 OK:成功状态码,一般有body数据204 No Content:和200基本相同,但是响应头没有body数据206 Partial Content:是应用于HTTP分块下载或者断点续传,表示响应返回的body并不是资源的全部,而是一部分
  • 3xx表示客户端请求的资源发生了变动,需要客户端用新的URL重新发送请求获取资源,也就是重定向301 Moved Permanently:永久重定向,说明请求的资源已经不存在了,需要改用新的URL再次访问302 Found:临时重定向,说明请求的资源还在,但暂时需要用另外一个URL来访问301和302都会在响应头里面使用字段Location,指名后续要跳转的URL,浏览器会自动重定向新的URL304 Not Modified:表示资源没有被修改,重定向已经存在缓冲文件,也叫做缓存重定向,也就是告诉客户端可以继续使用缓存资源
  • 4xx表示客户端发送的报文有误,服务器无法处理400 Bad Request:客户端请求的报文有错误,但只是一个笼统的错误403 Forbidden:服务器禁止访问资源,并不是客户端的请求出错404 Not Found:请求的资源在服务器上不存在或者没有找到,因此无法提供给客户端
  • 5xx表示客户端请求报文正确,但是服务器处理时内部发生了错误500 Internal Server Error:是一个笼统的错误码501 Not Implemented:客户端请求的功能还不支持,类似于即将开业,敬请期待502 Bad Gateway:服务器作为网关或者代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错误503 Service Unavailable:表示服务器当前很忙,暂时无法响应客户端,网络服务正忙,请稍后重试

操作系统

进程,线程,协程的区别(超高频考点)

看博客重点学习,超级高频,面了5次,5次全考!!

先讲什么是进程,线程和协程:

  • 进程:https://blog.csdn.net/qq_61039408/article/details/126480756
  • 线程:https://blog.csdn.net/qq_61039408/article/details/127569479
  • 协程:https://www.educative.io/answers/what-is-a-coroutine

说明概念之后再谈区别:

https://segmentfault.com/a/1190000040373756

MySQL

为什么使用B+树作为索引?

redo log

看看《小林coding》

#我的实习求职记录#
 类似资料: