面试题
graph TDa(用户发起请求)—>b(zuulControlelr)b—>c(zuulServlet)c—>d(zuulRunner)d—>e(zuulRunner调用FilterProcessor执行各种Filter)e—>f(FilterProcessor通过FilterLoader加载Filter)f—>g(init初始化,pre前置Filter,router路由Filter,post后置Filter,error异常Filter)g—>h(将执行结果返回)
12345678graph TDa(用户发起请求)-->b(zuulControlelr)b-->c(zuulServlet)c-->d(zuulRunner)d-->e(zuulRunner调用FilterProcessor执行各种Filter)e-->f(FilterProcessor通过FilterLoader加载Filter)f-->g(init初始化,pre前置Filter,router路由Filter,post后置Filter,err ...
Java面向对象(上)
Java面向对象(上)面对对象概述面向过程(POP)与面向对象(OOP)面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。
面向对象:强调具有功能的对象,以类/对象为最小单位,考虑谁来做。面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法和原则,如抽象、分类、继承、聚合、多态等。
面向对象的三大特征
封装
继承
多态
面向对象的思想概述程序员从面向过程的之性质转化成了面向对象的指挥者。
面向对象分析方法分析问题的思路和步骤:
根据问题需要,选择问题所针对的现实世界中的实体。
从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类。
把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序语言,把类构造晨计算机能够识别和处理的数据结构。
将实例化成计算机世界中的对象,对象是计算机世界中解决问题的最终工具。
面向对象的两个要素——类和对象对象:是实际纯在的该事物的每个个体,因而也称为实例(instance)
定义类类(class)和对象(object,也被称为实例),其中类是对一类事物的描述,是抽象的、概念上的定义。定义类的简单语 ...
JavaWeb
JavaScript介绍Javascript 语言诞生主要是完成页面的数据验证。 因此它运行在客户端, 需要运行浏览器来解析执行 JavaScript 代码。JS 是 Netscape 网景公司的产品, 最早取名为 LiveScript;为了吸引更多 java 程序员。 更名为 JavaScript。
JS 是弱类型, Java 是强类型。
比如int a = 1;那么a不能够再被赋值为其他类型;但是在js中,var a = 1;a还能被赋值为其他类型,比如a = “hello”;
特点
交互性(它做的就是动态交互)
安全性(不允许直接访问本地硬盘)
跨平台性(只要是可以解释JS的浏览器都可以执行,和平台无关)
JavaScript 和 html 代码的结合方式第一种方式只需要在 head 标签中, 或者在 body 标签中, 使用 script 标签来书写 JavaScript 代码
12345678910111213141516<!DOCTYPE html><html lang="en"><head> <m ...
Java程序流程控制与数组
程序流程控制与数组顺序结构测试
程序从上到下逐行执行,中间没有任何判断和跳转。
如果没有任何流程控制,程序总是从上到下执行每条语句。
分支结构
根据条件,选择性地执行某段代码。
有if-else和switch-case两种分支语句。
if-else结构
else是可选的
针对多个条件表达式之间是“互斥”关系(或者没有交集的关系)。
如果多个条件表达式之间有交集关系,需要根据实际情况,考虑应该将哪个结构声明在上面。
如果多个条件表达式之间有包含关系,一定要先处理包含范围小的情况,否则范围小的没机会运行。
if-else结构是可以嵌套的。
if语句三种格式
123if(条件表达式){ 执行表达式;}
123456if(条件表达式){ 执行表达式1;}else{ 执行表达式2;}
12345678910if(条件表达式){ 执行表达式1;}else if{ 执行表达式2;}... ...else{ 执行表达式n;}
具体举例1234567891011121314 ...
Java运算符
Java定义的数据类型变量按照数据类型分变量
变量就是指在内存中开辟的存储空间,用于存放运算过程中需要用到的数据,变量是可变的。
变量声明Java是个强类型语言,所有变量必须先声明后使用,声明会对变量类型进行判断,指定的类型变量只能接收类型与之匹配的值 ,声明的语法只需要指定变量的类型和变量名即可。
变量初始化1int x;//如果不给x进行赋值,是不能直接打印的
如果要使用变量必须初始化,有两种方式:
123456//在声明同时,直接初始化 int a = 10; //先声明,后初始化 int a; a = 10;
基本数据类型
整型:byte、short、int、long浮点型:float、double字符型:char布尔型:boolean
整数类型
Java各整数有固定的表数范围和字段长度,不受具体OS的影响,以保证Java程序的可移植性。
Java的整型常量默认为int型,声明long型产量须后加’l’或’L’
Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
类型
占用存储空间
表数范围
byte
1字节=8bit位
-128 ...
数学建模模型算法
数学建模的分类按模型的数学方法分
几何模型、图论模型、微分方程模型、概率模型、最优控制模型、规划论模型、马氏链模型等
按模型的特征分
静态和动态模型,确定性模型和随机模型,离散模型和连续性模型、线性模型和非线性模型等
按模型的应用领域分
人口模型、交通模型、经济模型、生态模型、资源模型、环境模型等
按建模的目的分
预测模型、优化模型、决策模型、控制模型等
按对模型的结构了解程度分
白箱模型、灰箱模型、黑箱模型等
十大算法1、蒙特卡洛算法(随机性模拟算法)
通过计算机仿真来解决问题的算法,同时可以通过模拟来检验自己模型的正确性
2、数据拟合、参数估计、插值等数据处理算法
处理大量数据
3、线性规划、整数规划、多元规划、二次规划等规划类问题
建模竞赛大多数问题属于最优化问题,很多时候可以用数学规划算法来描述
4、图论算法
包括最短路、网络流、二分图等算法必须掌握
**5、动态规划、回溯搜索、分治算法、分支定界等计算机算法
这些问题时用来解决一些较困难的最优化问题的算法
6、最优化理论的经典算法:模拟退火、神经网路、遗传算法
解决较难的最优化问题的 ...
建模学习(四)
相关系数在相关系数中最常用的是皮尔逊(person)相关系数和斯皮尔曼(spearman)等级相关系数。它们可以用来衡量两个变量之间的相关性的大叫,根据数据满足的不同条件,选择不同的相关系数进行计算和分析
总体和样本总体:所要考察对象的全部个体叫做总体。
样本:从总体所抽取的一部分个体叫做总体的一个样本
总体的估计量可以通过计算抽取的样本的统计量来计算
例如使用样本均值、样本标准差来估计总体的均值(平均水平)和总体的标准差(偏离程度)。
皮尔逊Person相关系数运用皮尔逊相关系数时,必须先确认比较的像个变量是线性相关的
建模学习(三)
插值与拟合前言概述在题中遇到大量数据需要处理时,题目给出的数据往往都存在坏点数据或数据异常。而数据拟合、参数估计、插值等数据处理算法往往是处理这些数据的关键。
基本概念在实际中,常常要处理由实验或测量所得到的一些离散数据。插值与你和方法就是要通过这些数据去确定某一类已知函数的参数或寻求某个近似函数,使所得到的近似函数与已知数据有较高的拟合精度。
如果要求这个近似函数(曲线或曲面)经过所已知的所有数据点,则称此类问题为插值问题。(不需要函数表达式)
如果不要近似函数通过所有数据点,而是要求它能够较好地反映数据变化规律的近似函数的方法称为数据拟合。(必须有函数表达式)近似函数不一定(曲线或曲面)通过所有的数据点
插值与拟合的区别和联系1、联系
都是根据实际中一组已知的数据来构造一个能够反映数据变化规律的近似函数的方法
2、区别
插值问题不一定得到近似函数的表达式,仅通过插值方法找到位置点对应的值。数据拟合要求得倒一个具体的近似函数的表达式。
插值插值的使用及求解当数据量不够,需要补充,且认定已有数据可信时,通常利用函数插值方法。
插值方法1.最近邻算法插值(一维插值)2.拉格朗日插值算法( ...
建模学习(二)
TOPSIS算法(优劣解距离法)TOPSIS法是一种常用的综合评价方法,能充分利用原始数据的信息,所得出结果能精确地反映各评价方案之间的差距。
基本过程
先将原始数据矩阵统一指标类型(一般正向化处理)得倒正向化矩阵,在对正向化的矩阵进行标准化处理以消除个别指标量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分别计算各评价对象与的最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格的限制,数据计算简单易行。
常见的四种指标
指标名称
指标特点
例子
极大型(效益型)指标
越大(多)越好
成绩、CDP增速、企业利润
极小型(成本型)指标
越小(少)越好
费用、坏品率、污染程度
中间型指标
越接近某个值越好
水质量评估时的PH值
区间型指标
落在某个区间最好
体温、水中植物性营养物量
第一步:将原始矩阵正向化所谓将原式矩阵正向化,就是要将所有的指标类型统一转化为极大型指标。(转换的函数形式可以不唯一)
1、极小型 → 极大型公式
如果所有元素均为正数,也可以使用1/x
1、中 ...
层次分析法代码实现
输入判断矩阵12clear;clc %清除变量和命令窗口disp('请输入判断矩阵A: ') %输入函数 自定义矩阵输入
计算权重方法1:算数平均法求权重1、将判断矩阵按照列进行归一化处理(每一个元素初一其所在列的和)
12345Sum_A = sum(A) %矩阵按列相加[m,n] = size(A) %取矩阵的行数m,列数nSUM_A=repmat(Sum_A,n,1); %按行重复n次sum_A函数Stand_A = A ./ SUM_A; %A和SUM_A矩阵对应行相除;即将判断矩阵按照列归一化disp('算术平均法求权重的结果为:'); %输出函数
2、将归一化的各列相加(按行求和) 1sum(Stand_A,2);
3、将相加后得到的向量中每个元素除以n即可得到权重向量 12disp('算术平均法求权重的结果为:'); %输出函数disp(sum(Stand_A,2) / n)
方法2:几何平均法求权重1、将A的元素按照行相乘得到一个新的列向量
12clc;APrduct_A = prod(A,2) % ...