2021年6月最新面试记录

2021年6月最新面试记录

大家好,又见面了,我是全栈君。

PHP部分

1.nginx设置反向代理,获取真实客户端ip

upstream这个模块提供一个简单方法来实现在轮询和客户端IP之间的后端服务器负荷平衡。
upstream abc.com {
        server 127.0.0.1:8080;
        server 127.0.0.1:80;
        server 127.0.0.1:8000;
}
 
server {
        listen 80;
        server_name www.test.com;
        location / {
                proxy_pass http://abc.com;
                proxy_set_header    Host             $host;#保留代理之前的host
                proxy_set_header    X-Real-IP        $remote_addr;#保留代理之前的真实客户端ip
                proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header    HTTP_X_FORWARDED_FOR $remote_addr;#在多级代理的情况下,记录每次代理之前的客户端真实ip
                proxy_redirect      default;#指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
        }
}

  1. yii和thinkphp,laravel区别
  2. tcp三次握手四次挥手
  3. 抽象类和接口的区别
  4. redis 和memchech 区别,
  5. redis 和memcache分布式 ,
  6. mongodb 如何扩容
  1. PHP和go 区别,优势
  2. 常用的shell 命令,
  3. awk 如何分割参数
  4. git merge和rebase区
  5. mysql索引优化
  6. mysql主从复制原理
  7. mysql 存储引擎有几种以及区别
  8. mysql 大分类关联小分类数据库设计,在不使用中间表的情况下(标签??)
  9. 批量更新mysql数据表(如:其中一个用户发生变化,其他多个与之对应的用户发生改变)

golang部分

1.go切片作用,切片与数组的区别? 什么场景用切片,什么场景用数组

Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片(“动态数组”),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大

数组:

arr1 = [5]int{2, 3, 4, 5, 6} // 长度和元素类型都相同,可以正确赋值
  • 数组定义:由若干相同类型的元素组成的序列
  • 数组的长度是固定的,声明后无法改变
  • 数组的长度是数组类型的一部分,eg:元素类型相同但是长度不同的两个数组是不同类型的
  • 需要严格控制程序所使用内存时,数组十分有用,因为其长度固定,避免了内存二次分配操作

切片:

  • 指针:指向底层数组
  • 长度:切片中元素的长度,不能大于容量
  • 容量:指针所指向的底层数组的总容量
//使用数组来初始化切片
arr := [5]int{1, 2, 3, 4, 5}
slice := arr[0:3] // 左闭右开区间,最终切片为 [1,2,3]

2.闭包函数作用:

Go 语言支持匿名函数,可作为闭包。匿名函数是一个”内联”语句或表达式。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。

package main

import "fmt"

func getSequence() func() int {
   i:=0
   return func() int {
      i+=1
     return i  
   }
}

func main(){
   /* nextNumber 为一个函数,函数 i 为 0 */
   nextNumber := getSequence()  

   /* 调用 nextNumber 函数,i 变量自增 1 并返回 */
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())
   
   /* 创建新的函数 nextNumber1,并查看结果 */
   nextNumber1 := getSequence()  
   fmt.Println(nextNumber1())
   fmt.Println(nextNumber1())
}

以上代码执行结果为:

1
2
3
1
2

参考:https://www.cnblogs.com/caidingyu/p/11077194.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111525.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 神奇的CSS3按钮特效

    点击这里查看效果以下是源代码:1234567CSS3神奇的按钮-柯乐义89678695696697请使用支持CSS3的浏览器查看本页。原文698699700701

    2021年12月20日
    45
  • Unity3d快速入门[通俗易懂]

    Unity3d快速入门[通俗易懂]https://www.zhihu.com/question/313621072Unity3d如何快速入门前言进入一个领域,最直接有效的方法就是,寻找相关综述性文章,首先你需要对你入门的领域有个概括性的了解,这些包括:1、主流的学习社区与网站。2、该领域的知名大牛与热心分享的从业者。3、如何有效的激励自己持续学习—主要是动手实践因此,总结一下Unity相关学习资源,可能有些不足,欢迎大家指正修改,一起成长!授人与鱼,不如授人与渔!一、Unity官方学习资源1、【Unity官.

    2022年8月10日
    3
  • python wxpython菜鸟教程_wxpython新手向教程

    python wxpython菜鸟教程_wxpython新手向教程wxpython教程手写wxpython会有各种问题,可以去下载wxformbuilder布局管理器然后去百度一下这个布局管理器的教程,这里太多了不多赘述。两种创建窗口方式:classMyFrame(wx.Frame)和classMyPanel(wx.Panel)来继承wx.Frame和wx.Panel,但是用wxformbuilder来创建布局和窗口会自动帮忙写好。继承wx.Frame的结尾…

    2022年5月22日
    24
  • TKmybatis的框架介绍及使用方法

    最近项目使用了SpringBoot+TKMytis框架,期间遇到一些问题,顺便记一下。一、框架配置配置的话非常简单,我用的是SpringBoot,直接引入:<dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter&l…

    2022年4月4日
    190
  • SIFT matlab源代码解析[通俗易懂]

    SIFT matlab源代码解析[通俗易懂]SIFTmatlab源代码解析sift是目前常用的localfeature的描述子。sift特征匹配算法可以处理两幅图像之间发生一些平移、旋转、仿射等匹配问题。因为早前自己要做一个图像拼接的问题,所以用到了sift。写这篇blog,是因为自己准备向CV进军,开始着手写blog来积累知识,这也是我第一篇blog,虽然这篇blog很简陋,纯属向sift致敬,但也方便一些初学者使用吧。以后也会不定期对

    2022年6月16日
    33
  • Linux系统中运行.sh文件的几种方法

    Linux系统中运行.sh文件的几种方法在 Linux 系统中执行 sh 文件的几种方法 1 cd 到 sh 文件所在的目录 然后执行 xxx sh 前提 该 sh 文件要有可执行的权限 chmodu xxxx sh 2 在任何路径下 输入 sh 文件的绝对路径进行执行 前提 该 sh 文件要有可执行权限 3 在 sh 文件路径下直接使用 sh 加 sh 文件名即可 是否有可执行权限都可以 4 在任何路径下 使用 sh 和 sh 文件的绝对路径即可 是否有可执行权限都可以 注意事项 用 加文件名

    2025年7月27日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号