java9 09.01_多态的概述及其代码体现A:多态(ploymorphic)概述事物存在的多种形态B:多态前提a:要有继承关系b:要有方法重写c:要有父类引用指向子类的对象C:案例演示代码体现多态class Demo1_Ploymorphic { public static void main(String[] args) { Animal a = new Cat(); //父类引用指向子类对象 a.eat(); //输出:猫吃鱼 }}class Anim
java8 08.01_代码块的概述和分类(面试时会问,开发时不用或很少用)A:代码块概述在Java中,使用{}括起来的代码称为代码块B:代码块分类根据其位置和声明不同,可分为局部代码块,构造代码块,静态代码块,同步代码块(多线程时会讲)。C:常见代码块应用a:局部代码块在方法中出现;限定了变量的生命周期,及早释放,提高内存使用率。程序段class Demo1_Code { public static void main(String[] args) { { i
java7 07.01_构造方法(Constructor) 概述和格式A:构造方法概述和作用给对象的数据(属性)进行初始化B:格式特点方法名和类名相同(大小写也要和类名一致)没有返回值类型,连void也没有没有具体的返回值returnC:案例演示class Demo1_Constructor { public static void main(String[] args) { Person p = new Person(); //在创建对象的时候,系统就帮我们调用了构造方法
java6 06.01_面向对象思想概述A:面向过程思想概述第一步,第二步,第三步…B:面向对象思想概述找对象(第一步,第二步,第三步…)C:面向对象的思想特点是一种更符合我们思想习惯的思想可以将复杂的事情简单化将我们从执行者变成了指挥这,角色发生了转换。D:面向对象开发就是不断的创建对象,使用对象,指挥对象做事情。E:面向对象设计其实就是在管理和维护对象之间的关系。F:面向对象特征封装(encapsulation)继承(inheritance)多态(p
java5 05.01_数组概述和格式定义说明A:为什么要用数组(容器)为了存储同种数据类型的多个值B:数组概念数组是存储同一种数据类型多个元素的几何,也可以看成是一个容器数组既可以存储基本数据类型,也可以存储引用数据类型C:数组定义格式数据类型[] 数组名 = new 数据类型[数组的长度];05.02_数组的初始化——动态初始化A:什么是数组的初始化就是为数组开辟连续的内存空间,并为每个数组元素赋值B:如何对数组进行初始化a:动态初始化:只指定长度,由系统
java4 04.01_循环结构概述和for语句的格式及其使用A:循环结构分类for,while,do…whileB:循环结构for语句的格式for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; }C:执行流程a:执行初始化语句b:执行判断条件语句,看其返回值是true还是false如果是true,就继续执行如果是false,就结束循环c:执行循环体语句d:执行循环后的操作表达式e:回到b继续D:注意事项判断条件语句无论是简单还是复杂,结果都
java3 03.01_逻辑运算符的基本用法A:逻辑运算符有哪些&,|,^,!&&,||B:注意事项逻辑运算符一般用于连接boolean类型的表示式或值表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子算术运算符:a + b比较表达式:a == bC:结论&逻辑与:有false,则false|逻辑或:有true,则true^逻辑异或:相同为false,不同为true!逻辑非:非false则true,非true则fals
java2 02.01_常量的概述和使用A:什么是常量在程序执行的过程中,它的值不可以发生改变。B:Java中常量的分类字面值常量自定义常量C:字面值常量分类字符串常量用双括号引起来的内容整数常量所有整数小数常量所有小数字符常量用单引号括起来的内容,里面只能放单个数字,单个字母或者单个符号布尔常量只有true和false空常量nullD:案例演示class Demo1_Constant { public static v
Java1 01.01_计算机语言分类机器语言:能够为机器所识别的语言,实则为若干个0和1组成为二进制代码。汇编语言:用一些特殊符号表示二进制码,需要用特定软件将其翻译成机器语言,计算机才能执行。高级语言:使用普通英语编写的源代码,需要通过编译器将其翻译成机器语言,计算机才能执行。高级语言包括C,C++,C#,Java等。01.02_人机交互A:人机交互的两种方式命令行方式:控制台输入,需要特殊指令。windows里为cmd命令行(DOS),ubuntu里为termial
EKF_SLAM简析 一、EKF原理1.卡尔曼滤波原理(KF)卡尔曼滤波是贝叶斯滤波的具体化,需要系统满足两个假设:线性化假设:系统为线性系统,包含两个层面,即系统的状态转移函数为线性函数,系统的观测模型也为线性函数 。状态转移函数:系统从t-1时刻到t时刻不加观测量情况下状态量的变化,可以表示如下,xt=Atxt−1+Btut+εt{x_t} = {A_t}{x_{t - 1}} + {B_t}{u_t...
非线性最小二乘法原理 一些基础概念[1]1.最小二乘法定义找到一个x∗{x^*}x∗,使得下面的式子到达局部最小值,F(x)=12∑i=1m(fi(x))2F(x) = \frac{1}{2}\sum\limits_{i = 1}^m {{{({f_i}(x))}^2}}F(x)=21i=1∑m(fi(x))2这里的fi(x){{f_i}(x)}fi(x)表示变量为xxx的函数,其中自变量xxx维度为nn...
矩阵的QR分解 在线性最小二乘里,最后得到的闭式解为(ATA)x=ATb({A^T}A)x = {A^T}b(ATA)x=ATb,对于该等式的求解,其中一种方法是正交变换法求解,而正交变换求解线性最小二乘的实质就是对矩阵AAA进行QR分解。QR分解的概念:若实非奇异对称矩阵A能化为正交矩阵Q和实非奇异上三角矩阵R的乘积,即A=QRA=QRA=QR,则称该式为A的QR分解。事实上,任何的实非奇异n阶矩阵A都可以...
EM算法详解 极大似然估计极大似然的本质是找出与样本分布最接近的概率分布模型,它是一种用样本来估计概率模型参数的方法。下面以二项分布和高斯分布为例。1.二项分布例如,进行抛硬币实验,十次抛硬币的结果是:正正反正正正反反正正正正反正正正反反正正正正反正正正反反正正假设p是每次抛硬币结果为正的概率,则,得到实验结果的概率是,P=pp(1−p)ppp(1−p)(1−p)pp =p7(1−p)3\...
代码区——排序算法 #include<iostream>#include<vector>using namespace std;//直插法排序void Insertsort(vector<int>& v){ int i, j; for (i = 2; i < v.size(); i++) { if (v[i] < v[i - 1]) ...
最大子数组问题的三种算法 最大子数组问题描述如下:一个数组有N个元素,求连续子数组的最大和,并返回其在原数组中的索引位置。例如,[-1,2,1]的最大连续子数组为[2,1],其和为3,索引位置为1和2(数组下标从0开始)。下面以数组[13,-3,-25,20,-3,-16,-23,18,20,-7,12,-5,-22,15,-4,7]为例,进行各种算法的说明。暴力解法对具有n个元素的数组进行两次遍历,求取任意两个...
代码区——栈 #include "stdafx.h"#include<iostream>#define MAXSIZE 100using namespace std;//栈的数据类型定义typedef struct { int *base; int *top; int stacksize;}SqStack;//初始化一个栈int InitStack...
代码区——顺序表 #include "stdafx.h"#include<iostream>#define MAXSIZE 100using namespace std;//顺序表类型定义typedef struct { int *data; int length;}SqList;//初始化顺序表void InitList(SqList& L){...
代码区——单链表 #include "stdafx.h"#include<iostream>using namespace std;typedef struct Lnode //链表类型定义{ int data; struct Lnode* next;}Lnode,*LinkList;void CreateList_Head(Link...
数据结构索引 数据结构与算法序数据结构之线性表(一)——定义数据结构之线性表(二)——操作类型数据结构之线性表(三)——顺序存储结构(1 定义与特点)数据结构之线性表(三)——顺序存储结构(2 C/C++语言有关操作)数据结构之线性表(三)——顺序存储结构(3 顺序表基本操作的实现)数据结构之线性表(三)——顺序存储结构(4 顺序表小结)数据结构之线性表(四)——链式存储结构(概念)数据结构之线...