Java,八股,cv,算法——双非研0四修之路day36

目录

昨日总结

今日计划

闭包

昨日八股答案 

今日八股


昨日总结

  • 学习mysql进阶篇(完结),学习函数式编程(马上完结)
  • cv(停滞中)
  • 小林coding--Spring面试篇(7/7)

今日计划

  • JVM底层原理学习,开始练手米粒商城项目,docker学习,学习函数式编程(完结)
  • cv(停滞中)
  • 小林coding--MySQL面试篇(1/7)
  • 码随想录——二叉所搜树的最小绝对差

闭包

闭包是一种能够捕获其所在作用域中变量的函数。但是Java中的闭包有一些限制,特别是在捕获局部变量时,要求这些变量必须是final或实际上是final(effectively final)的,即它们在初始化后不再被修改。

但是在下面的例子中,有些不符合闭包的特性

函数对象(int y) -> x + y 与他的外部的变量x形成了闭包,在函数对象的逻辑部分用到了外部的变量,它就可以与外部变量形成闭包,但外部的变量唯一的限制是必须是final修饰的变量(要保证函数的不变性)

public class demo {

    int b = 2;
    static int a = 1;

//    public demo(int b) {
//        this.b = b;
//    }

    public  void test () {
        System.out.println(b + a);
    }


//函数对象(int y) -> x + y 与他的外部的变量x形成了闭包,在函数对象的逻辑部分用到了外部的变量,它就可以与外部变量形成闭包,但外部的变量唯一的限制是必须是final修饰的变量(要保证函数的不变性)
    public static void main(String[] args) {
        int x = 10;
        Student stu = new Student(20);
        highOrder(y -> x + stu.d);
        stu.d = 30;
        highOrder(y -> x + stu.d);
    }

    static void highOrder(Lambda lambda) {
        System.out.println(lambda.test(1));
    }
    @FunctionalInterface
    interface Lambda {
          int test(int y);
    }

    static class Student{
        int d;
        public Student(int d) {
            this.d = d;
        }
    }
}

采用闭包设计的方案,是为了保证线程的安全,内存一致性,避免多个闭包同时修改同一变量导致数据不一致。

昨日八股答案 

  • Mybatis运用了哪些常见的设计模式

建造者模式、工厂模式、单例模式、代理模式、适配器模式、迭代器模式等

  • Spring Cloud与Spring boot的区别

Spring Boot用于构建单个Spring应用的框架

Spring Cloud用于构建分布式系统中的微服务的工具,同时提供了服务注册、负载均衡、网关等功能

  • 负载均衡的算法

简单轮询:将请求按顺序分发给后端服务器上,不关心服务器得我性能、当前的负载情况

加权轮询:根据服务器自身的权重分配请求,让性能高的服务器处理更多的请求

简单随机:随机分配

加权随机:按权重随机分配

一致性哈希:根据请求的客户端ip或请求出参数计算哈希值,利用哈希值去映射到服务器上

最小活跃数:统计服务器的请求次数,将请求分发给活跃数最少得后台服务器

  • 介绍一个服务熔断和服务降级

服务熔断:是应对微服务雪崩效用的一种保护机制。微服务之间的数据交互是通过远程调用来完成的,当微服务链之间进行多次调用请求无响应时,会发生服务崩溃的情况,导致雪崩效应。而服务熔断的作用就类似于保险丝,当服务出现不可用或响应超时情况,将会暂停对服务的调用。

服务降级:指当服务器压力剧增时,对一些服务进行策略处理的手段,从而释放服务器的资源。

服务器的资源是有限的,但请求时无线的。服务降级是从整个系统的负荷情况考虑,保证整个系统的稳定性和可用性。

今日八股

  • 数据库三大范式
  • MySQL的链表查询
  • 如何避免重复插入数据
  • char和varchar的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值