精华内容
下载资源
问答
  • Java中的异常有哪几类?分别怎么使用

    千次阅读 2017-12-20 22:46:20
    java程序在运行时发生的不正常情况,而异常就是按照面向对象的思想对不正常情况进行封装,将这些情况封装成为对象。Throwable 定义了问题的共性的功能它的两...其中异常为Exception,它分为,编译时会被检测的异常

    java程序在运行时发生的不正常情况,而异常就是按照面向对象的思想对不正常情况进行封装,将这些情况封装成为对象。

    Throwable 定义了问题的共性的功能

    它的两个子类

    1. Exception:由JVM发生的,并告知使用者。可以进行针对性的处理。
    2. Error:由系统底层发生的,告知JVM,JVM告知使用者。不做针对性处理,直接修改代码。

    其中异常为Exception,它分为两类,编译时会被检测的异常 和 运行时异常(编译时不会被检测)RuntimeException及其子类。

    1. 被检查的异常,是编写程序之前就能够遇见的可能发生的异常,在方法中将预知的对象声明出去直到jvm。对于那些能够或者知道处理办法的用 try catch 代码块进行处理。
    2. 运行时异常,可能在执行方法期间抛出但未被捕获的 ,也被称为是‘’不受检查异常‘’RuntimeException 的任何子类都无需在 throws 子句中进行声明。当发生异常的时候程序,就会被Java虚拟机抛出。
        if( t == null){
            throw new NullPointerException();
        }
        空指针异常就是一种常见的运行时异常。
    展开全文
  • 近期看到一个po主强调静态内部与嵌套的...按照这本书的章节,可以将内部类分为:成员内部,局部内部,匿名内部,嵌套。具体定义不再阐述,不是本文的细节。这篇文章的描述的比较详细:Java的种内部...

    近期看到一个po主强调静态内部类与嵌套类的区别,才开始关注起来。究竟哪种叫法更准确?

     

    在《Java编程思想》第四版这本书里,单独有一章叫:内部类。里面关于内部类的定义如下:可以将一个类的定义放在另一个类的定义内部,这就是内部类。

    按照这本书的章节,可以将内部类分为:成员内部类,局部内部类,匿名内部类,嵌套类。具体定义不再阐述,不是本文的细节。这篇文章的描述的比较详细:Java的几种内部类

    这个里面是是没有直接提到静态内部类的,而是称之为嵌套类。

     

    因此我们更规范,或者更书面一点的叫法,还是最好叫嵌套类。当然其实这只是一个小问题,不会影响大家的代码。只是以后别人说嵌套类的时候,你知道和静态内部类是一个意思就行。

     

     

     

     
     
     
     
     
    展开全文
  • 和对象

    2021-01-19 16:53:47
    首先我们要知道的是Java是一门纯面向对象的语言,他的三大特性分为封装、继承、多态,但是Java中并不是只有这种特性,这是我们要知道的,其次我们应该了解什么是面向对象,面向对象这一思想,主要是对于我们要解决...

    1.面向对象的初步认识
    1.1什么是面向对象
    首先我们要知道的是Java是一门纯面向对象的语言,他的三大特性分为封装、继承、多态,但是Java中并不是只有这几种特性,这是我们要知道的,其次我们应该了解什么是面向对象,面向对象这一思想,主要是对于我们要解决的问题,我们要思考的内容是这一问题中都有哪些类,以及这些类都有哪方面的特点以及行为,也就是我们Java中的属性以及方法。
    1.2面向对象程序的好处
    这个我们可以采用一个对比,比如把大象装进冰箱
    我们如果采用面向过程的方法,我们只需要分为三步,开门、把大象装进冰箱、关门。
    这一方法的看似比较简单,但如果实现起来我们会发现根本毫无细节,很多重要的方面我们都没有了解到,在实施方面就会有很大的困难。
    而如果我们采用面向对象的方法来是进行思考,我们把这题体系分为多个类,冰箱、大象两个类,并且可以明确的为冰箱以及大象来定义属性以及实现该问题的方法,来进行代码的编程。
    由此我们可以看出来,通过对象的交互来完成问题的解决,我们通过类来编写,我们更加清楚的了解到每一个对象中的细节,并在在之后的改进也是非常方便的。
    2.类定义和使用
    2.1简单认识类
    类主要是用来对一个实体来进行描述的,主要是描述一个实体也就是对象,都有哪些属性,以及方法,我们用人来举例,人就是一个类,而每个个体的人就是对象,人的甚低身高、体重、性别、姓名、年龄等的都是人的属性,人吃饭睡觉这些必须的行为,我们就称为方法。
    2.2类的定义格式

    package Class;
    //类名,类名采用大驼峰的形式
    public class Person {
        //属性或字段或成员变量
        public int age;//年龄
        public String name;
        public String sex;
        //方法或成员方法
        public void eat(){
            System.out.println("吃饭");
        }
        public void sleep(){
            System.out.println("睡觉");
        }
    }
    

    对于属性的限定符我们如果能采用private那么尽量采用private
    2.3我们来尝试定义一个类

    package Class;
    
    public class Car {
        private String num;//车牌号
        private double weight;//车重,单位吨
        private int count;//最大乘客数
        //构造方法
        public Car(String num,double weight,int count){
            this.num = num;
            this.weight = weight;
            this.count = count;
        }
        public void numprint(){
            System.out.println(num);
        }
    }
    class Test{
        public static void main(String[] args) {
            Car car = new Car("陕E.6666",22.2,6);
            car.numprint();
        }
    }
    

    3.类的实例化
    3.1什么是类的实例化
    当我们定义一个类的时候,我们就相当于在计算机中定义了一个类型,比如上面内容,我们就相当于定义了一个车辆的类型,基于这个类的类型来创建对象,就称为对于类的实例化,我们采用new这一关键字来进行类的实例化,具体例子就是我上面的Test类中的主方法中的语句,来进行实例化。
    对于非静态方法,就是不带static的方法,我们可以采用对象名+ . + 方法名来进行访问对象,一个类我们可以创建多个实例。
    3.2类和对象的说明
    类我们就可以看做是概念模型,而对象我们可以基于这个概念模型创建出来的实体。通俗易懂一点,我们以人来举例,人就是类,而张三、李四这些个体就是对象。

    展开全文
  • 1. 谈谈集成学习的概念和思想。 i) 概念 从训练数据中学得的模型称为学习器,集成学习通过...2. 集成学习方法可以分为哪几类,并且分别阐述它们的特点。 根据个体学习器的生产方式,集成学习方法可大致分为两类: i)...


    智能控制与优化决策课题组制作。
    对应周志华《机器学习》第八章内容。

    1. 谈谈集成学习的概念和思想。

    i) 概念

    从训练数据中学得的模型称为学习器,集成学习通过构建并结合多个学习器来完成学习任务。

    ii) 思想

    产生具有一定准确性和多样性(好而不同)的个体学习器,再使用一定的策略将不同的个体学习器结合,以获得比所有单一的个体学习器更好的性能。

    2. 集成学习方法可以分为哪几类,并且分别阐述它们的特点。

    根据个体学习器的生产方式,集成学习方法可大致分为两类:

    i) 序列化方法

    个体学习器串行生成,个体学习器间存在强依赖关系。

    ii) 并行化方法

    个体学习器同时生成,个体学习器间依赖关系较小。

    3. 在集成学习中,阐述针对二分类问题的AdaBoost算法实现过程。思考AdaBoost算法在每一轮如何改变训练数据的权值或概率分布?

    给定一个训练数据集T=(x1,y1),(x2,y2)(xN,yN)T={(x_1,y_1), (x_2,y_2)…(x_N,y_N)}yiy_i属于标记集合{-1,+1},Adaboost的目的就是从训练数据中学习一系列弱分类器或基本分类器,然后将这些弱分类器组合成一个强分类器。

    i) AdaBoost实现过程

    step1: 首先,初始化训练数据的权值分布。每一个训练样本最开始时都被赋予相同的权值:1N\frac{1}{N}
    在这里插入图片描述
    step2: 进行多轮迭代,用m = 1,2, …, M表示迭代的第多少轮
    a. 使用具有权值分布DmD_m的训练数据集学习,得到基本分类器(选取让误差率最低的阈值来设计基本分类器):
    在这里插入图片描述
    b. 计算Gm(x)G_m(x)在训练数据集上的分类误差率
    在这里插入图片描述
    由上述式子可知,Gm(x)G_m(x)在训练数据集上的误差率eme_m就是被Gm(x)G_m(x)误分类样本的权值之和。
    c. 计算Gm(x)G_m(x)的系数,αm\alpha_m表示Gm(x)G_m(x)在最终分类器中的重要程度(目的:得到基本分类器在最终分类器中所占的权重)
    在这里插入图片描述
    由上述式子可知,eme_m <= 1/2时,αm\alpha_m >= 0,且αm\alpha_m随着eme_m的减小而增大,意味着分类误差率越小的基本分类器在最终分类器中的作用越大。
    d. 更新训练数据集的权值分布(目的:得到样本的新的权值分布),用于下一轮迭代
    在这里插入图片描述
    误分类样本可由yiy_iGm(xi)G_m(x_i)的符号异同判断,被基本分类器Gm(x)G_m(x)误分类样本的权值增大,而被正确分类样本的权值减小。就这样,通过这样的方式,AdaBoost方法能“重点关注”或“聚焦于”那些较难分的样本上。
    其中,ZmZ_m是规范化因子,使得Dm+1D_{m+1}成为一个概率分布(实际上就是归一化处理):
    在这里插入图片描述
    step3: 组合各个弱分类器
    在这里插入图片描述
    从而得到最终分类器,如下:
    在这里插入图片描述
    AdaBoost分析: 实际上就是下一次的分类器尽量分正确上一次迭代分错的样本,为上一次迭代的分类器做补充。换句话说,“你分不对的我来分”,下一个分类器主要关注上一个分类器没分对的点,每个分类器都各有侧重,所以只用一个分类器的效果肯定不会太好,但因为每一个分类器都侧重一部分,所以结合的效果会不错。

    ii) AdaBoost实例

    下面,给定下列训练样本集,请用AdaBoost算法学习一个强分类器(二分类,{-1,1})。
    在这里插入图片描述
    10个样本,每个样本初始权值为0.1(每个样本被分错后得到的“错误率”为0.1),此时分类阈值v取2.5时误差率最小,为0.3(6,7,8分错,0.1 x 3=0.3)。
    在这里插入图片描述
    G1G_1的系数,
    在这里插入图片描述
    根据下式调整样本权重,
    在这里插入图片描述
    第一个样本点的权重调整 0.1exp(α1y1G1(x1))=0.1exp(0.423611)=0.06550.1*exp(-\alpha_1y_1G_1(x_1))=0.1*exp(-0.4236*1*1)=0.0655,每个点都如此调整之后再求和得Z1=0.9165Z_1=0.9165,于是0.0655/0.9165=0.07150.0655/0.9165=0.0715为第一个样本点调整后的权重。
    于是可得D2D_2 = (0.0715, 0.0715, 0.0715, 0.0715, 0.0715, 0.0715, 0.1666, 0.1666, 0.1666, 0.0715)。分类函数f1(x)=α1G1(x)=0.4236G1(x)f_1(x)= \alpha_1G_1(x) = 0.4236G_1(x),此时,得到的第一个基本分类器sign(f1(x))sign(f_1(x))在训练数据集上有3个误分类点(即6 7 8),故继续迭代。
    根据D2D_2分类阈值v取8.5时误差率最小,为0.2143(样本“3 4 5”分错了,0.0715 x 3 = 0.2143),重复上述步骤,直到误分类点足够少或者误差率足够小。

    4. 随机森林与集成学习之间有什么样的关系?

    随机森林是由多个分类树学习器结合为一个强学习器的集成学习方法。

    5. 用python实现基于单层决策树的AdaBoost算法。

    # -*- coding: utf-8 -*-
    """
    Created on Sun Jul 28 16:35:40 2019
    
    @author: User
    """
    
    import numpy as np
    #import pandas as pd
    import matplotlib
    import matplotlib.pyplot as plt
    
    matplotlib.rcParams['font.family']='SimHei'  # 用来正常显示中文
    plt.rcParams['axes.unicode_minus']=False     # 用来正常显示负号
    
    def splitDataSet(dataSet, i, value,types='lt'):
        """
    #划分数据集,只进行一次划分的树,将划分后的结果返回
        :param dataSet: 数据
        :param i: 特征的下标
        :param value: 阈值
        :param types: 大于或小于
        :return: 分类结果,注意返回的直接就是1,-1分类结果
        """
        retArray = np.ones((np.shape(dataSet)[0],1))     # 默认类型都为1
        if types=='lt':   # 使用(小于等于value)划分数据,满足条件的将结果值改为-1
            retArray[dataSet[:,i]<=value]= -1.0  
        elif types=='gt': # 使用(大于value)划分数据,满足条件的将结果值改为-1
            retArray[dataSet[:,i]>value]= -1.0  
        return retArray 
    
    def bulidSimpleTree(dataSet,y,D):
        """
    创建一个最简单的树,只进行一次划分,相当于一个树桩
        :param dataSet: 数据特征矩阵
        :param y: 标签向量
        :param D: 训练数据的权重向量
        :return: 最佳决策树,最小的错误率加权和,最优预测结果
        """
        m,n=dataSet.shape                      # 样本行数及列数
        numFeatures = len(dataSet[0]) - 1      # 最后一列为y,计算x特征列数
        numSteps=10                            # 用于计算步长,进行numSteps等分
        minError=np.inf                        # 初始化损失值
        bestTree={}                            # 使用dict存储最优的一系列树
        for i in range(numFeatures):           # 遍历所有x特征列
            # i=0
            rangeMin = dataSet[:, i].min()     # 该xi维的最小值
            rangeMax = dataSet[:, i].max()     # 该xi维的最大值
            stepSize = (rangeMax - rangeMin) / numSteps # 步长
            for j in range(-1,int(numSteps) + 1):    # 循环寻找最优切分点
                # j=-1
                for inequal in ['lt', 'gt']:         # 遍历(lt小于等于)及(gt大于)
                    # inequal=1
                    value = (rangeMin + float(j) * stepSize) # 切分值
                    predictedVals = splitDataSet(dataSet, i, value, inequal)  # 获取切分后的数据
                    errArr = np.mat(np.ones((m, 1)))
                    errArr[predictedVals == y] = 0  # 预测正确的样本对应的错误率为0,否则为1
                    weightedError=D.T*errArr        # 《统计学习方法》李航P138,8.1,计算训练数据上的分类误差率
                    if weightedError < minError:    # 记录最优树桩决策树分类器
                        minError = weightedError    # 计算错误率加权和
                        bestClasEst = predictedVals.copy() # 最好的预测结果
                        bestTree['column'] = i             # 维度x
                        bestTree['splitValue'] = value     # 切分值
                        bestTree['ineq'] = inequal         # 切分方法(lt小于等于)及(gt大于)
        return bestTree, minError, bestClasEst
    
    # 基于单层决策树的adaboost分类器
    def adaboost(dataSet,maxLoop=100):
        """
    基于单层决策树的ada训练
        :param dataSet: 样本x及y
        :param maxLoop: 迭代次数
        :return: 一系列弱分类器及其权重,样本分类结果
        """
        adaboostTree=[]
        m,n=dataSet.shape                     # 样本行数及列数
        y=dataSet[:,-1].reshape((-1,1))       # 将y提取出来,方便进行计算
        D = np.array(np.ones((m,1))/m)        # 将每个样本的权重初始化为均等,有多少条数据就有多少个d
        aggClassEst = np.mat(np.zeros((m,1))) # 每个数据点的类别估计累计值
        for i in range(maxLoop):              # maxLoop超参数,总迭代次数
            bestTree, minError, bestClasEst=bulidSimpleTree(dataSet,y,D)
            alpha=0.5*np.log((1-minError)/(minError+0.00001)) # 《统计学习方法》李航P139,8.2,计算Gm的系数,分母加一个小数避免除数为0
            bestTree['alpha'] = alpha.getA()[0][0]            # 将matrix中的值提取出来,并加入到bestTree中
            adaboostTree.append(bestTree)                     # 将树存入list中存储
            D=D*np.exp(-alpha.getA()[0][0]*y*bestClasEst)     # 更新权重D,《统计学习方法》李航P139,8.3-8.5,计算Gm(x)的系数
            D=D/D.sum()                                       # 归一化权重值,统计学习方法》李航P139,8.5,计算Zm
            # 计算所有分类器的误差,如果为0则终止训练
            aggClassEst += alpha.getA()[0][0]*bestClasEst     # 分类估计累计值,adaboost是线性运行的,需要将每次的树预测结果相加
            aggErrors = np.multiply(np.sign(aggClassEst) != np.mat(y),np.ones((m,1))) # aggClassEst每个元素的符号代表分类结果,如果与y不等则表示错误,统计学习方法》李航P138,8.8
            errorRate = aggErrors.sum()/m                     # 平均分类误差
            print( "total error: ",errorRate)
            if errorRate == 0.0:                              # 平均分类误差等于0的,说明数据已经全部分类正确,跳出循环
                break
        return adaboostTree,aggClassEst
    
    
    def adaClassify(data, adaboostTree):
        """
    对预测数据进行分类
        :param data: 预测样本x及y
        :param adaboostTree: 使用训练数据,训练好的决策树
        :return: 预测样本分类结果
        """
        dataMatrix = np.mat(data)  
        m = np.shape(dataMatrix)[0]
        aggClassEst = np.mat(np.zeros((m, 1)))
        for i in range(len(adaboostTree)):                     # 遍历所有adaboostTree,将估计值累加
            classEst = splitDataSet(dataMatrix, adaboostTree[i]['column'], adaboostTree[i]['splitValue'], adaboostTree[i]['ineq'])  
            aggClassEst += adaboostTree[i]['alpha'] * classEst # 分类估计累计值,adaboost是线性运行的,需要将每次的树预测结果相加
        result = np.sign(aggClassEst)                          # 只取正负号,《统计学习方法》李航P139,8.8
        return result
    
    def plotData(dataSet):
        """
    数据画图
        """
        type1_x1 = []
        type1_x2 = []
        type2_x1 = []
        type2_x2 = []
    
        # 取两类x1及x2值画图
        type1_x1 = dataSet[dataSet[:,-1] == -1][:,:-1][:,0].tolist()
        type1_x2 = dataSet[dataSet[:,-1] == -1][:,:-1][:,1].tolist()
        type2_x1 = dataSet[dataSet[:,-1] == 1][:,:-1][:,0].tolist()
        type2_x2 = dataSet[dataSet[:,-1] == 1][:,:-1][:,1].tolist()
        
        # 画点
        fig = plt.figure()
        ax = fig.add_subplot(111)
        ax.scatter(type1_x1,type1_x2, marker='s', s=90)
        ax.scatter(type2_x1,type2_x2, marker='o', s=50, c='red')
        plt.title('Adaboost训练数据')
        
    if __name__ == '__main__':
        print('\n1、Adaboost,开始')
        dataSet = np.array([
            [ 1. , 2.1, 1 ],
            [ 2. , 1.1, 1 ],
            [ 1.3, 1. , -1],
            [ 1. , 1. , -1],
            [ 2. , 1. , 1 ]])
        #classLabels = [1.0, 1.0, -1.0, -1.0, 1.0]
        # 画图
        print('\n2、Adaboost数据画图')
        plotData(dataSet)
        
        print('\n3、计算Adaboost树')
        adaboostTree,aggClassEst=adaboost(dataSet)
        
        # 对数据进行分类
        print('\n4、对[5,5],[0, 0]点,使用Adaboost进行分类:')
        print( adaClassify([[5,5],[0, 0]], adaboostTree))
    

    程序参考:https://blog.csdn.net/weixin_43383558/article/details/84860078

    展开全文
  • 2. 集成学习方法可以分为哪几类,并且分别阐述它们的特点。3. 在集成学习中,阐述针对二分类问题的AdaBoost算法实现过程。思考AdaBoost算法在每一轮如何改变训练数据的权值或概率分布?4. 随机森林与集成学习之间有...
  • 2. 集成学习方法可以分为哪几类,并且分别阐述它们的特点。3. 在集成学习中,阐述针对二分类问题的AdaBoost算法实现过程。思考AdaBoost算法在每一轮如何改变训练数据的权值或概率分布?4.随机森林与集成学习之间有...
  • 2.集成学习方法可以分为哪几类,并且分别阐述它们的特点。3.在集成学习中,阐述针对二分类问题的AdaBoost算法实现过程。思考AdaBoost算法在每一轮如何改变训练数据的权值或概率分布?4.随机森林与集成学习之间有...
  • 2.集成学习方法可以分为哪几类,并且分别阐述它们的特点。3.在集成学习中,阐述针对二分类问题的AdaBoost算法实现过程。思考AdaBoost算法在每一轮如何改变训练数据的权值或概率分布?4.随机森林与集成学习之间有什么...
  • 机器学习9-集成学习

    2020-08-12 10:05:35
    2.集成学习方法可以分为哪几类,并且分别阐述它们的特点。3.在集成学习中,阐述针对二分类问题的AdaBoost算法实现过程。思考AdaBoost算法在每一轮如何改变训练数据的权值或概率分布?4.随机森林与集成学习之间有...
  • 生物学教育教学工作总结 本学期来,生物教育教学工作始终本着...例如:“神经调节”这节教材中的反射的类型学生能看懂,我就先提出两个问题:(1)按照反射的形成过程,反射的类型可以分为哪?(2)非条件反射和...
  • 千里马酒店前台管理系统V7使用手册

    热门讨论 2011-06-16 14:09:38
    同时也借鉴了国内外先进软件的功能特性,吸取了百家酒店客户的反馈意见,在保持千里马传统的“以财务为核心、前后台一体化”的基础上,进一步吸收了收益管理、客户关系管理、营销分析、决策支持等先进管理思想,...
  • 4.4.6 你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。 4.4.7 垃圾回收算法的实现原理。 4.4.8 当出现了内存溢出,你怎么排错。 4.4.9 JVM内存模型的相关知识了解多少,比如重...
  • 外文翻译 stus MVC

    2010-05-28 15:02:31
    1:外文原文 Struts——an open-source MVC implementation This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology....
  • 我们并不能使同学们通过这次系列讲座成为一个 UNIX 操作系统的高手,这次系列 讲座的目的就是在同学们中间普及 Linux 基础知识,为今后我们更加接近的了解 Linux 做一 个好的开端。 第一讲 Linux基础 在这一...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    顺序图、协作图:单用例中个对象的行为 顺序图突出顺序,协作图着重对象间链接关系 项目三 项目市场调研 任务1. 系统的研发背景 任务2. 软件开发计划 油画创作背景 波洛克 《1948年第五号》 1.4亿$,最昂贵画作...
  • (17) 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及(B) 注:P66 A. 阶段性报告 B. 需求评审 C. 总结 D. 都不正确 (18) 下述关于数据库系统的叙述中正确的是(A) A. 数据库...
  • php高级开发教程说明

    2008-11-27 11:39:22
    点,这些方案一般分为:简短的变量和函数名及谈话式的变量和函数名(描述变量类型和 目的的更长的名字)。 某个电话目录可能是这个样子的,如表1 - 1所示。 第1章认开发思想部分3 下载 表1-1 电话目录 姓名地址...
  •  《Visual C++开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以...
  •  《Visual C++开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以...
  •  《Visual C++开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以...
  • 图像翻译,可以通过非成对的图片将某一图片转换成另外一图片,可用于风格迁移 Cityscapes StarGAN 多领域属性迁移,引入辅助分类帮助单个判别器判断多个属性,可用于人脸属性转换 Celeba AttGAN 利用分类...
  • 但是已经可以帮助我们理解tapable的使用以及插件的思想。 <h2>1.2. webpack中的插件 在介绍webpack的插件机制前,先简单回顾下上面“进门回家”例子: <ul><li>我们的<code>Welcome是主要的功能&#...
  • SLAM主要分为哪几个模块 ORB-SLAM2的优缺点分析,如何改进 ORB和FAST对比 BA和卡尔曼滤波 ORB-SLAM2的三个线程是什么 ORB-SLAM2的定位如何实现 如何理解ORB-SLAM2的图优化 结构光、TOF、双目视觉原理 直接...
  • 在新的编程思想中,指针基本上被禁止使用(JAVA中就是这样),至少也是被限制使用。而在我们交换机的程序中大量使用指针,并且有增无减。 2、防止指针/数组操作越界 【案例1.2.1】 在香港项目测试中,发现ISDN话机...
  • 16.6 决定采用种加密技术 670 16.7 小结 671 索引 672 译者序  Oracle Database 11g的推出让关注Oracle的人欣喜万分,不过也不免有些担心,因为此前还没有合适的书系统而深入地介绍这个新版本。要想学习和...
  • 我认为如下的个架构思想是重中之重 - 充血模型 <ul><li>事件驱动 </li></ul> ​ 下面两篇将为大家详细介绍这两个设计思路 版权说明 本文采用 CC BY 3.0 CN协议 进行许可。 可自由转载、引用,但需署名作者且...
  • 我们可以把 Web 分为前端和后端,前端负责界面和交互,后端负责业务逻辑的处理。前后端通过接口进行数据交互。我们也不再需要在各个后端语言里面写着难以维护的 HTML。网页的复杂度也由后端的 Web ...
  • 《数据结构 1800题》

    热门讨论 2012-12-27 16:52:03
    7. 根据数据元素之间的逻辑关系,一般有哪几类基本的数据结构? 【北京科技大学 1998 一、1】【同济大学 1998】 8.对于一个数据结构,一般包括哪三个方面的讨论?【北京科技大学 1999 一、1(2分)】 9. 当你为...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

思想可以分为哪几类