JavaSE(2)02 多线程--静态代理

多线程

静态代理

//静态代理总结:
//真实对象和代理对象都要实现同一个接口
//代理对象要代理真实角色:把真实对象通过参数传给代理对象
//好处:
//代理对象可以做好多真实对象做不了的事情
//真实对象专注做自己的事情 
public class StaticProxy {
    public static void main(String[] args) {
        WeddingCompany company=new WeddingCompany(new You());
        company.marray();
    }
}
interface Marry{
    void marray();
}
//真实角色:你去结婚
class You implements Marry{
    @Override
    public void marray() {
        System.out.println("我要结婚了");
    }
}
//代理角色:帮助你结婚
class WeddingCompany implements Marry{
    //代理的真实角色
    private Marry target;
    public WeddingCompany(Marry target) {
        this.target = target;
    }
    
    @Override
    public void marray() {
        before();
        this.target.marray();//这就是真实对象
        after();
    }
    private void after() {
        System.out.println("结婚之后收尾款");
    }
    private void before() {
        System.out.println("结婚之前布置现场");
    }
}

在这里插入图片描述

Lamda表达式

  • 避免匿名内部类定义过多
  • 其实质属于函数式编程的概念
  • Functional Interface(函数式接口)是学习Lamda表达式的关键所在
  • 函数式接口的定义:
    • 任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口
    • 对于函数式接口,我们可以通过Lamba表达式来创建该接口的对象
//Lamda表达式
public class LambaDemo {
    public static void main(String[] args) {
        ILike test=new Like();
        test.Lamda();
        new Like2().Lamda();
        //局部内部类
        class Like3 implements ILike{
            @Override
            public void Lamda() {
                System.out.println("i like Lamda3");
            }
        }
        new Like3().Lamda();
        //匿名内部类 没有类的名称,必须借助接口或继承
        ILike like4=new ILike(){
                @Override
            public void Lamda() {
                System.out.println("i like Lamda4");
            }
        };
        like4.Lamda();
        //Lamda简化
        ILike like5=()->{
            System.out.println("i like Lamda5");
        };
        like5.Lamda();

    }
    //静态内部类
    static class Like2 implements ILike {
        @Override
        public void Lamda() {
            System.out.println("i like Lamda2");
        }
    }
}
//定义函数式接口
interface ILike{
    void Lamda();
}
//实现类
class Like implements ILike{
    @Override
    public void Lamda() {
        System.out.println("i like Lamda");
    }
}
  • 带参数的Lamda及优化
//带参数的Lamba
public class LamdaDemo2 {
   public static void main(String[] args) {
        //匿名内部类
//        Love people2=new Love(){
//            @Override
//            public void sayLover(String name) {
//                System.out.println(name+"say:i love you");
//            }
//        };
        //Lamba表达式
//        Love people2=(String name)-> {
//                System.out.println(name+"say:i love you");
//        };
        //简化Lamda:取参数类型(多个参数也可以去掉参数类型,要去掉就都去掉,必须加括号)
//        Love people2=(name)-> {
//            System.out.println(name+"say:i love you");
//        };
        //简化Lamda:参数去掉括号
//        Love people2=name-> {
//            System.out.println(name+"say:i love you");
//        };
        //简化Lamda:去掉花括号:前提:代码只有一行
        Love people2=name-> System.out.println(name+"say:i love you");
        people2.sayLover("ls");
        //总结:
            //前提:接口为函数式接口(接口中只有一个方法)
    }
}
interface Love{
    void sayLover(String name);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值