**后端面试总结**

目录

1.简单介绍负载均衡的理解:

2.描述反向代理的流程:

3.easy poi使用过程遇到的问题:

环境:

问题1(ArrayListValuedHashMap找不到)

问题2(CellType类找不到)

4.list,用什么方式遍历:

5.进程线程分别是什么:

6.进程和线程在地址空间上有什么区别:

7.线程和资源有什么关系:

8.git中什么是代码冲突,怎么解决。


  1. 1.简单介绍负载均衡的理解:

生活中的负载:
举例:
一大卡车拉石头,,通过负载均衡原理,让一群卡车拉石头
老师交学生,设立班长,组长,副组长,此时部分学生产生的问题, 老师班长组长副组长他们都可以在有效的时间内解决更多的问题
编程中的负载:
用户发送请求,咱们后端接收到并响应给前端
那么,当用户访问量大的时候,咱们的服务器处理效率就会变慢 ,就相当于一个人他一直处理所有的事情。响应慢,从而大大的影响了用户的体验效果
所以我们就想到了负载均衡的设计思想,建立一个集群(就是一群服务器),通过集群的力量来提高服务端的数据处理能力,因为一台服务器的处理能力肯定比不上多台服务器的处理能力。

  1. 2.描述反向代理的流程:

http{
	**#每一个反向代理服务,都是一个server
    server {
    	# 监听端口号 80
        listen       80;
        # 服务的域名
        server_name  localhost;
		#进行反向代理服务  / 拦截所有的请求
        location / {
        	#root关键字  反向代理的是一个目录
            root   html;
            #index关键字 代表默认的页面
            index  index.html index.htm;
        }
    } 
}

1:接收用户请求(域名)
2:检查用户的请求在其代理的所有服务器中是否存在与其一致域名
3:域名在其代理服务器中存在解析到对应端口号,与用户请求进行拼接,然后发送拼接后的请求到对应服务器获取数据模型.返回给用户
4.用户请求不存在,返回错误页面,提示用户

  1. 3.easy poi使用过程遇到的问题:

环境:

   <!-- springboot -->
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>
	 <!-- springboot -->
	 
	<!--easypoi-->
	 <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-spring-boot-starter</artifactId>
            <version>4.0.0</version>
        </dependency>
 <!--easypoi-->
 
 <!--commons-collections4-->
 <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.0</version>
        </dependency>
	 <!--commons-collections4-->

问题1(ArrayListValuedHashMap找不到)

提示ArrayListValuedHashMap找不到的问题,报错如下图所示: 

这个问题主要就是因为commons-collections4的版本是4.0,版本比较低,升级到4.1后就可以了。,升级后的依赖如下:

<dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-collections4</artifactId>
           <version>4.1</version>
       </dependency>

问题2(CellType类找不到)

第二个问题如下图所示:提示CellType类找不到,真的就很奇怪了,这个类明明可以搜索的到,为啥系统就提示找不到呢?

一番百度之后还是无果,莫得办法,我只有尝试着将easypoi-spring-boot-starter依赖的版本从4.0.0降到3.3.0。版本换成3.3.0之后,上传文件就可以了,真的是太神奇了。

 <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-spring-boot-starter</artifactId>
            <version>3.3.0</version>
        </dependency>  
  1. 4.list,用什么方式遍历:

使用 iterator迭代器: (迭代的意思可以理解为遍历)
        System.out.println("iterator迭代器:");
     

进行集合的迭代
        //方式1:for循环
        System.out.println("方式一:for循环迭代");
        for(int i = 0;i <= list.size()-1 ; i++){
            System.out.println(list.get(i));
        }


        //方式2:高效for循环
        System.out.println("方式二:高效for循环迭代");
        //for(本轮遍历到元素的类型 元素名 : 要遍历的集合名){循环体}
        for(Integer t : list){
            System.out.println(t);
        }


        //方式3:iterator迭代器
        System.out.println("方式三:iterator迭代器:");
        //获取迭代器对象
        Iterator<Integer> it = list.iterator();
        //循环迭代集合中的所有元素
        while(it.hasNext()){//判断是否有下一个元素可迭代,如果有,继续循环
            System.out.println(it.next());//打印本轮迭代到的元素
        }


        //方式4:listIterator
        System.out.println("方式四:list独有的迭代器listIterator");
        //获取迭代器对象
        ListIterator<Integer> it2 = list.listIterator();

  1.         //循环迭代集合中的所有元素

        while(it2.hasNext()){//判断是否有下个元素可迭代
            System.out.println(it2.next());//打印本轮迭代到的元素
        }
    }

  1. 5.进程线程分别是什么:

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

  1. 6.进程和线程在地址空间上有什么区别:

进程有独立的地址空间,一个进程崩溃后,不会对其它进程产生影响         而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。简而言之,一个程序至少有一个进程,一个进程至少有一个线程。

  1. 7.线程和资源有什么关系:

线程它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

  1. 8.git中什么是代码冲突,怎么解决。

冲突1:

当你commit以后,在执行git pull --rebase的时候出现冲突,请按如下步骤解决:

1  找到冲突文件,解决冲突

2  执行git add xxx(xxx为冲突文件全路径)

3  执行git rebase --continue
4  执行git pull --rebase
5  执行git push


冲突2:

当你本地有修改的时候,你执行了git stash,然后又从服务器上pull了最新代码(git pull --rebase),出现了冲突,请按如下方式解决:

1  找到冲突文件,解决冲突

2  执行git add xxx(xxx为冲突文件全路径)

3  git commit

4  git pull --rebase

5  git push
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值