自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 SSM整合带流程图,知道要配置哪些配置文件以及各个配置的作用

SSM整合本文是在你使用maven管理框架,并且建立了标准的web目录的情况下介绍​ 首先引入依赖spring-context(spring框架)mybatisspring-webmvc(Spring-MVC)mybatis-spring(整合包)mysql-connector-java(MySQL的jdbc)spring-jdbcdruid(数据源)servlet-api(servlet)jsp-apijstl<dependencies> <depe

2021-04-06 20:47:06 397

原创 Spring整合数据源报错严重: create connection SQLException, url: jdbc:mysql://localhost:3306/library, errorCode

在Spring通过bean加载数据源时,报出以下错误我有点懵逼,但是仔细一看,发现明明我的配置文件里username是root,这里怎么显示我的电脑名ASUS。然后了解到,有些环境默认情况下,如果在指定的属性文件中找不到属性,它还会检查Java系统属性。虽然不知道为什么它不优先用我配置文件里的信息,但是,我把配置文件里的username改成user后,就成功了。因为username和你系统里的username重名,冲突了。或者你不想改,可以在扫描配置包的那条语句下加上这个属性 system-pr

2021-04-05 22:44:45 2594 3

原创 Mybatis快速入门(真的很快)——非简单贴图放代码

Mybatis快速入门​ Mybatis是一个开源的持久层框架,非常普及,据说阿里就用它。​ 有同学问什么是持久层,你只需要浅薄的知道持久层就是数据库就ok了。Mybatis框架入门使用步骤创建核心xml配置文件创建持久化类(POJO)创建SQL映射xml文件编写测试代码我先来解释一下什么叫持久化类,持久化类是指其实例状态要被保存到数据库中的类,也就是一个javaBean。比如以下这个User类public class User{ int id; String n

2021-03-25 18:49:00 138

原创 servlet的生命周期(详细易懂)

servlet程序servlet程序是运行在web服务器上或应用服务器,如Tomcat服务器上的一段程序,它的作用是处理发送至服务器的请求,处在服务器上的应用程序或者数据库和web客户端之间。servlet接口为了实现servlet程序,我们通常需要直接或者间接实现servlet接口。servlet中,包含以下方法public interface Servlet { void init(ServletConfig var1) throws ServletException; Se

2021-02-02 00:55:14 868 2

原创 最长子序列LCS算法

问题描述:给定两个序列X,Y,求这两个序列的最长公共子序列;主要思想:动态规划解析:子序列:即序列中,下标按照严格递减所形成的序列即为子序列,比如 X <A,B,C,B,A>,那么 ACB也是该序列的子序列子序列可以有很多,但是最长子序列的长度是应该唯一的。推论:1:如果Xi=Yj,那么Zk=Xi=Yj,则Zk-1=Xi-1+Yj-12:如果Xi !=Yj,且Zk != Xi,则Zk是Xi-1与Yj的最长公共子序列3:如果Xi !=Yj,且Zk !=Yj,则Zk是Xi与Yj-1

2020-06-12 12:34:16 134

原创 矩阵链问题(动态规划和递归)

1.问题给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2 ,…,n-1。如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。2.解析假设在第k位置上找到最优解,那么问题就变成两个子问题:(Ai,Ai+1……Ak),(Ak+1……Aj);用dp[i][j]表示矩阵连乘的最优值,那么两个子问题对应的最优值变成dp[i][k],dp[k+1][j];设矩阵A的行数为P,列数为Q,矩阵是可连乘的,即相邻矩阵Q=P+1,所以(Ai,Ai+1……Ak)可

2020-05-26 14:40:58 252

原创 动态规划——投资问题

1.问题数学语言:有n个项目,m元钱,dp(x,y)表示第x个项目投资y元钱的效益,问如何投资使效益最大。2.解析维护一个二维数组dp[i][j],表示前i个项目投资j元钱的最大利益,从第一个项目开始考虑,到第n个项目,为n分配x元钱,m-x元钱的最大效益为dp[n-1][m-x]。for (i<项目数) { for (j <总金额) { for (k<j) { if (dp[i][j] < a[i][k] + dp[i - 1][j - k]) { 更新

2020-05-26 14:37:59 229

原创 分治法查找第k小/大的数

1.问题数学语言:给无序序列集中有n个元素,查询次数m和一个整数k,1<=k<=n,找出这n个元素中第k大的元素。2.解析利用快速排序,可以从序列中取一个中点mid,然后把序列分成小于等于mid和大于等于mid的两部分,由两个部分的元素个数和k的大小关系可以确定这个数是在哪个部分,以此类推,进行递归查找。3.设计if (两边指针相交) return -1; if (两边指针重合) return 当前元素; i = quicksort(a, l, r);//对当前序列进行快

2020-05-26 14:36:34 852

原创 分治思想

1:点的数量较少的情况可以直接用蛮力算法计算出,比如 n=1或者2;2:点的数量较多的情况,就需要利用分治的思想来实现,首先将每个点按照X轴升序排序,将点集合Q一分为二,称为Q1,Q2。然后分别求出Q1、Q2中最短点对d1与d2;但是我们不能断定求出的d=min(d1,d2)就是这个空间里最短点对,因为在Q1、Q2分割线两侧可能有两点之间的距离比d1和d2还小。所以我们设分隔线与x=m,找出Q点集中[m-d,m+d]之间的点,记该点集为Q3,然后将Q3中的点以y轴按升序排序,按照视频里的讲解,最多只用查找

2020-05-26 14:33:29 142

原创 二分归并排序

算法介绍:采用分治的思想,即将大问题转换为小问题,但是它们的前提一定要一样,否则就是两个问题了。归并排序即对一个序列进行一分为二,然后对两个子序列再进行一分为二,直到子列只有一个数,则返回,通过不断将子序列两两归并,最后将整个大序列归并排好序。因为我采取归并的方式,所以可以想象原来一个待排序的序列,先一分为二,但是这两个序列中不止一个元素,所以我们要继续一分为二,…直到一分为二后的序列只有一个元素,这时候我们可能已经向下递归很多层啦,接下来如果子序列只有一个元素我们就默认为有序的啦(也没得和别的数字排呀!

2020-05-26 14:31:07 213

原创 二分法与二叉查找树

二分查找法:对一个有序序列进行一分为二的检索,每次查找范围缩小一半,直到找到所需的数或者查找范围不存在;问题描述:对一个有序序列检索一个输入的数,若该数存在则返回下标,否则返回1;问题分析:这种问题最简单的方法是顺序检索,在数据量小的情况下,顺序和二分还有二叉查找树没有很大差别(此时是单边树),但在数据量大的情况下,对有序表的检索二分较优。这里用二叉查找树只是因为想复习一下数据结构学过的知识。时间复杂度:log(n)算法设计://// binary_search.cpp//////

2020-05-26 14:28:06 481

原创 Floyd和Dijkstra算法

Floyd算法算法解析:因为一张连通图中不是所有点到其他点都是有一条直接路径的,所以我们可以借助别的和终点相连的点到达终点,便是起点-中转…-终点;以小推大,小:假设当前只有1可以当中转点,start为起点,end为终点;因此当start点需要借助点1到end点时,便需要进行if(edge[start][end]>edge[start][1]+edge[1][end])的判断,这个判断的意思就是 :我的起点到终点的路径长度是否比中转方法的长度长,这时我们当然需要优先选择短的路径,并且在edge

2020-05-26 14:25:21 226

原创 最小生成树-Prim算法与Kruskal算法

最小生成树:求一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边.1:Prim算法(适合稠密图)`Prim(G){ //G为图 int addnow[maxen];//记录当前有多少点被纳入集合; int lowcost[maxen]; //记录当前集合中的点到其他点的最小距离的边集合; init();//初始化点集合与边集合; addnow[start]=true; //将起点纳入点集合 for(

2020-05-26 14:22:50 265

原创 深浅拷贝

深浅拷贝的区别:1、浅拷贝只是复制了对象的引用地址,两个对象指向同一个内存地址,所以修改其中任意的值,另一个值都会随之变化,这就是浅拷贝(例:assign())2、深拷贝是将对象及值复制过来,两个对象修改其中任意的值另一个值不会改变,这就是深拷贝。简单的理解就是:就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝。 如果拷...

2019-12-29 22:42:55 98

原创 聚合与组合

聚合关系中部分与整体之间并没有相同的生命周期,整体消亡后部分可以独立存在,并且多个整体可以共享部分。例如汽车与车轮,汽车报废车轮还是能独立存在组合关系中整体拥有部分的生命周期,所以整体删除时,部分一定会跟着删除。而且,多个整体不可以同时间共享同一个部分。...

2019-12-29 22:41:28 172

原创 Javadoc

定义javadoc是一种技术。它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。——来自百度百科自我理解:javadoc是一种注释,让代码看起来更加整洁。便于检查和修改。使用方法:写在类上面的Javadoc一般分为三段:第一段:概要描述,通常...

2019-12-29 22:36:47 118

原创 unicode和UTF-8、UTF-16、UTF-32区别

unicode是编码字符集,而UTF-8、UTF-16、UTF-32是字符集编码Unicode 分配给字符一个唯一的数字编号,这个编号范围从 0x000000 到 0x10FFFF (十六进制),有 110 多万,每个字符都有一个唯一的 Unicode 编号,这个编号一般写成 16 进制,在前面加上 U+。Unicode 就相当于一张表,建立了字符与编号之间的联系例如:U+0020 表示 ...

2019-12-29 22:34:56 292

原创 Eclipse的debug

eclipse 的debug使用Eclipse环境下进行debug与之前学习的C会不同,并非简单的调试可以完成。步骤如下:1->建立一个新文件"welcomewiththreemessages"2->在新的class下输入简单代码:3->选中需要debug的代码行,每行前会出现蓝色小圆点。4->点击Run内Debug5->出现如下见面后进行逐行debug:...

2019-12-29 22:33:29 96

原创 安装eclipse

**安装使用eclipse**第一天学习Java,就被安装eclipse的复杂程度震惊。首先找到eclipse的官网再点这里点了之后就会跳出来,点下载就可以。载好之后找到里面的exe就可以用,不需要安装。如果原先电脑没有装jdk,那还需要下载jdk。...

2019-09-04 14:22:45 88

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除