Java学习记录(一)

1.关于基本数据类型转换规则。
(1)8种基本数据类型除boolean类型之外都可以相互转换。
(2)byte<short(char)<int<long<float<double
(3)byte,short,char做混合运算的时候,各自都先转换成int再做运算。
(4)大容量向小容量转换是强类型转换,需要加强制转换符,编译虽通过
但是运行期可能损失精度。
(5)如果整数没有超过byte,short,char的取值范围,可以直接将这个整数
赋值给byte,short,char。
(6)多种数据类型做混合运算,先转换成容量最大的那种再做运算。

2.方法的执行原理:
方法在调用的时候,才会给该方法在内存中分配空间。
如果这个方法只是定义没有调用,则不会在内存中分配空间。
方法在调用的时候在“栈”中分配空间。(JVM内存中有一块内存是栈内存)
方法调用就是“压栈”。
方法结束就是“弹栈”。

3.深入final。
final修饰的引用类型,该引用不可再重新指向其他的Java对象。
但是final修饰的引用,该引用指向的对象的属性是可以修改的。
抽象类不能被final修饰,抽象方法不能被final修饰。

4.重写和重载的区别。
重写:
(1)参数列表必须完全与被重写的方法相同;
(2)返回的类型必须一直与被重写的方法类型相同。
(3)访问修饰符的限制一定要大于或者等于被重写的访问修饰符。
(4)重写方法一定不能抛出新的异常或者比被重写方法声明更宽泛的异常。
如:父类的一个方法声明一个IOException,在重写这个方法就不能抛出
Exception,只能抛出IOException,也可以抛出运行时异常或错误(不可查异常)。

重载:
(1)必须具有不同的参数列表,参数类型、数量和顺序其中一个不同。
(2)可以有不同的返回类型,只要参数列表不同就可以。
(3)可以有不同的访问修饰符。
(4)可以抛出不同的异常。

5.可查异常和不可查异常。
(1)可查异常(编译时异常):是可预料的异常,必须对该异常进行处理。
除了运行时异常(RuntimeException)及其子类外,其他的Exception类
及其子类都是可查异常。
(2)不可查异常:是不可预料的异常,无须对该异常进行处理。包括运
行时异常(RuntimeException)和错误(Error)。

6.异常和错误类
(1)Error和Exception都是继承了Throwable。
(2)Error属于不可查异常(编译时异常)。
(3)Exception的子类包括IOException和RuntimeException。
(4)IOException属于可查异常,必须进行处理,如:FileNotFoundException。
(5)RuntimeException属于运行时异常,是不可查的,无须进行处理,包括
ClassNotFoundException、NullPointerException、ArrayIndexOutOfBoundsException、
illegalargumentexception(不合法参数异常)。

7.抽象类
(1)class关键字前加abstract;
(2)抽象类无法实例化;
(3)抽象类虽无法实例化,但是也有构造方法,该构造方法是给子类
创建对象用的;
(4)抽象类可以定义抽象方法,抽象类不一定有抽象方法,但是抽象方法
必须出现在抽象类中;
(5)一个非抽象类的类继承类,必须将抽象类中的抽象方法覆盖、实现、
重写。

8.接口
(1)接口只能出现变量、抽象方法;
(2)接口其实是一个特殊的抽象类,特殊在接口是完全抽象;
(3)接口没有构造方法,无法被实例化;
(4)接口和接口之间可以多继承;
(5)一个类可以实现多个接口;
(6)一个非抽象类实现接口,需要将接口所有的方法实现、重写、覆盖。

9.抽象类和接口的区别
可以从构造方法、普通成员变量、普通方法、抽象方法的访问类型、静态
方法、静态成员变量等方面进行区分。
(1)抽象类可以有构造方法,而接口不能有构造方法;
(2)抽象类可以有普通成员变量,接口不能有普通成员变量;
(3)抽象类中可以包含非抽象类的普通方法,接口中的所有方法必须都是
抽象的;
(4)抽象类中的抽象方法的访问类型可以是public、protected,但接口
中的抽象方法只能是public类型,并且默认就是public abstract类型;
(5)抽象类可以包含静态方法,接口不能包含静态方法;
(6)抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量
的访问类型可以是任意的,但接口中定义的变量只能是public static final
类型,并且默认就是public static final类型。
(7)一个类可以实现多个接口,但只能继承一个抽象类。

10.Spring
(1)Spring实现了工厂模式的工厂类,这个类名为BeanFactory。Spring
相当一个大的工厂类,在其配置文件中通过<bean>元素配置用于创建实例
对象的类名和实例对象的属性。
(2)Spring提供了对IOC良好的支持,IOC是一种编程思想,利用这种思想
可以很好实现模块之间的解耦。IOC也称为DI即依赖注入。
(3)Spring提供了AOP技术良好封装,AOP称为面向切面编程,就是系统中
很多各不相干的类的方法,在这些众多方法中要加入某种系统功能代码。
例如,加入日志、权限判断、异常处理,这种应用称为AOP。

11.Spring IOC
IOC即控制反转,将应用程序管理的对象之间依赖关系交给了容器管理,
这就是控制反转,Spring的IOC容器主要用DI方式实现的。不需要主动
查找、对象查找、定位和创建,全部由容器管理。
(1)IOC大量减少了Factory和Singleton的数量,使代码层次更加清晰,
主要原因是不再查找、定位、创建和管理对象之间的依赖关系,全都
交给IOC容器管理了。
(2)Spring的IOC容器是一个轻量级的容器,没有侵入性,不需要依赖
容器的API,也不需要实现一些特殊接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 目标检测的定义 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像中目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框中是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像中提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 中进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选中值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框中继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测中Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值