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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DHCP_RELAY(Option60与Option82)[通俗易懂]

    DHCP_RELAY(Option60与Option82)[通俗易懂]DHCP_RELAY(Option60与Option82):http://wenku.baidu.com/view/2bac6d758e9951e79b8927e7.htmlDHCPOption82:DHCPRelayAgentInformationOption.提供DHCP的认证和安全机制。CID:AgentCircuitID RID:Agen

    2022年10月15日
    0
  • 数据库中去重_mysql数据去重

    数据库中去重_mysql数据去重数据库中如何去重:数据库中去重,需要分五步走一、找出重复值清单,利用distinct或groupby的方式将重复值清单取出二、将没有重复值的数据利用createtabletable_nameas步骤一中的查询语句三、将原表中数据利用truncatetabletable_name;的方式清空四、利用insertintotableselect*from无重复数据的表中五、将刚刚建立的表清掉即可推荐一个学习数据库,python,linux干货比较多的公众号:“数据与编程

    2022年9月30日
    0
  • Oracle存储过程详细教程「建议收藏」

    Oracle存储过程详细教程「建议收藏」Oracle存储过程详细教程点关注不迷路,欢迎再访! 目录Oracle存储过程详细教程一.创建存储过程语法二.输出案例三.调用存储过程3.1声明declare关键字3.2不声明declare关键字3.3call四.带有参数的存储过程五.in,out参数问题六.异常写法七.循环7.1while循环7.2for循环八.基本正删改查一.创建存储过程语法createorrep…

    2022年7月17日
    9
  • Django实现微信公众号简单自动回复

    在上篇博客阿里云部署django实现公网访问已经实现了了django在阿里云上的部署,接下来记录django实现微信公众号简单回复的开发过程,以方便日后查看内容概要:(1)微信公众号声请(2)微

    2021年12月29日
    38
  • Q学习和深度Q学习(DQN)论文笔记「建议收藏」

    Q学习和深度Q学习(DQN)论文笔记「建议收藏」Q学习(Q-learning)强化学习中有个很重要的递归关系,贝尔曼方程(BellmanEquation):Qπ(st,at)=E[r+γE[Qπ(st+1,at+1)]]Q^\pi(s_t,a_t)=E[r+\gammaE[Q^\pi(s_{t+1},a_{t+1})]]Qπ(st​,at​)=E[r+γE[Qπ(st+1​,at+1​)]]这个公式实际上也揭露了状态的马尔科夫性质,也…

    2022年10月3日
    0
  • 圆柱体积怎么算立方公式_圆柱怎么算立方?

    圆柱体积怎么算立方公式_圆柱怎么算立方?展开全部圆柱体的立方就是求圆柱体的体积。公式为:1、圆柱定义在同一个平面内有一条定直线和一条动线e69da5e887aa3231313335323631343130323136353331333363396363,当这个平面绕着这条定直线旋转一周时,这条动线所成的面叫做旋转面,这条定直线叫做旋转面的轴,这条动线叫做旋转面的母线。如果母线是和轴平行的一条直线,那么所生成的旋转面叫做圆柱面。如果用垂直…

    2022年9月20日
    0

发表回复

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

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