golang基础?试题 启动流程 Q.go的init函数是什么时候执?的? Q.多个init函数执?顺序能保证吗? Q.go init 的执?顺序,注意是不按导?规则的(这?是编译时按?件名的顺序执?的) Q.init函数能被外部调?吗? 内存分配 [外链图?转存失败,源站可能有防盗链机制,建议将图?保存下来直接上传(img-p22eNrMY-1646530923570) (C:\Users\MSI\AppData\Local\Temp\1646493064752.png)] 代已未堆栈环命 go内存结构:三个区域:span区512MB(注意:mspan在arena区),bitmap区16GB,arena区512GB 内存管理组件:mcache?锁分配, mcentral, mheap mspan 是 双 向 链 表 tiny分配器,减少内存浪费率,但回收困难,所有对象可回收才能回收 span?少1个page(8k),被划分成固定??的slot,bitmap表?slot是否在使?mchache?锁分配 ,mcentral,mheap .>32kb,从mheap从获取 .<16且?指针,使?tiny分配器 .<16有指针或者16-32kb,从mchache中获取mspan中的slot new new和make有什么区别? newobject函数 make makeslice,makechan,makemap,makemap_small Q.go对象在内存中是怎样的 Q.go的内存分配是怎么样的 Q.栈的内存是怎么分配的 Q. 检 测 Golang 内 存 泄 漏 的 ? 具 A.pprof,trace,race检测 Q.go struct 能 不 能 ? 较 ? A.字段类型和名称顺序?致,就可以做?较。跟结构体名称?关。Q.Golang ?的逃逸分析是什么?怎么避免内存逃逸? Q.简单介绍?下go的内存分配机制? 有mcentral为啥要mcache? A.答了 mcentral是服务所有系统线程,mcache为系统线程独享,mcache缺少span时去mcentral->mheap 中取 Q.内存对齐 A.跟c++的?样,8字节对齐 Q.go 内存分配,和 tcmalloc 的区别A.借?了tcmalloc的思想 Q.内存分配的不同?法的优缺点(固定分区、动态分区、页式分配) A. Q.copy是操作符还是内置函数A. 内 置 函 数 Q.Go怎么做深拷贝 A.先序列化,再反序列化 Q.了解内存泄漏吗?有什么危害? A.占资源,甚?程序奔溃 Q.空结构体的?处 A.1.map 。 value是空结构体,构造集合。2.通道。 只传递信号,不传递数据。3.切?。 不管切?多长,都不会占?空间。4.仅包含?法的结构体。 不?指针,节约空间。5.最后零字段。 final zero field:结构体?的最后?个属性如果是空结构体,会当成1个字节处理。如果结构体嵌套的全是空结构体,还是0个字节。Q.golang如何确定有没有内存泄露?系统?怎么去监控整体的运?情况??志是怎么处理的? A. Q.虚拟内存地址 Q.char *Ptr=0; *Ptr=‘a’ 说明?下内存分配流程A. 报 错 。 Q.什么是内存逃逸,在什么情况下发?,原理是什么? A