- 博客(87)
- 收藏
- 关注
原创 配置web.xml时 / 和 /* 的区别
在配置web.xml时,没有注意/ 和 /* 的区别,导致出现404报错原因:< url-pattern > / </ url-pattern > 不会匹配到.jsp, 只针对我们编写的请求;即:.jsp 不会进入spring的 DispatcherServlet类 。< url-pattern > /* </ url-pattern > 会匹配 *.jsp,会出现返回 jsp视图 时再次进入spring的DispatcherServlet 类,导致找不
2021-01-14 14:08:38
130
原创 深度优先搜索
深度优先搜索 就是从一个顶点开始,沿着一条路径一直搜索,直到到达该路径的最后一个结点,然后回退到之前经过但未搜索过的路径继续搜索,直到所有路径和结点都被搜索完毕如图所示先随便沿着一条路径一直搜索,图中路径为 1 -> 2 -> 3 -> 6 -> 9 -> 8 -> 5 -> 4当搜索到 顶点4 时,发现查找不到未被访问的顶点了,因此 顶点4 就是这条路径的最后一个顶点,此时我们要往后倒退,找寻别的每搜索过的路径此时发现当往后退到 顶点8 时,有一条路径上
2021-01-13 09:46:07
215
原创 广度优先搜索
广度优先搜索就是从第一个顶点开始,尝试访问尽可能靠近它的顶点,即先访问最靠近它的所有顶点,再访问第二靠近它的所有顶点,以此类推,直到访问完所有的顶点第一次先搜索离 顶点1 最近的两个顶点,即 顶点2 和 顶点7然后再搜索离 顶点1 第二近的所有顶点,也就是离 顶点2 和 顶点7 最近的所有顶点,如图所示由图可知,离顶点2 最近的顶点为 顶点3 和 顶点5 ,离 顶点7 最近的顶点为 顶点8 ,因此这几个点以此被遍历再继续往下搜索离 顶点1 第三近的所有顶点,也就是离 顶点3 、顶点5 和 顶点8
2021-01-12 23:22:43
228
1
原创 城堡问题
图1是一个城堡的地形图。请你编写一个程序,计算城堡一共有多少房间,最大的房间有多大。城堡被分割成m*n(m≤50,n≤50)个方块,每个方块可以有0~4面墙。输入程序从标准输入设备读入数据。第一行是两个整数,分别是南北向、东西向的方块数。在接下来的输入行里,每个方块用一个数字(0≤p≤50)描述。用一个数字表示方块周围的墙,1表示西墙,2表示北墙,4表示东墙,8表示南墙。每个方块用代表其周围墙的数字之和表示。城堡的内墙被计算两次,方块(1,1)的南墙同时也是方块(2,1)的北墙。输入的数据保证城堡至少
2021-01-09 23:05:32
132
原创 解决eclipse编辑jsp、js文件时经常出现卡死的问题
1、取消验证windows–>perferences–>validation把 除了manual 下面的全部点掉,build下只留 classpath dependency Validator。其实我是把所有的都给关了!2、关闭拼写检查windows–>perferences–>general–> editors->Text Editors->spelling3、关闭js校验在项目名上按alt+enter - 》Buliers 里面取消不需要的校验,一
2021-01-08 08:57:48
375
原创 上台阶
李老师爬楼梯,他可以一次爬1级或1次爬2级,输入楼梯的级数,求不同的走法数。输入输入包含若干行,每行包含一个正整数N,代表楼梯级数,1<=N<=30,输出不同的走法数,每一行输入对应一行。输出不同的走法数,每一行输入对应一行输出。样例输入5810样例输出83489#include<stdio.h>int N;int stairs(int n){ if(n<0) return 0; if(n==0) return 1; return st
2021-01-06 08:47:58
104
原创 mysql循环遍历查询结果集
-- 创建存储过程之前需判断该存储过程是否已存在,若存在则删除DROP PROCEDURE IF EXISTS init_reportUrl; -- 创建存储过程CREATE PROCEDURE init_reportUrl()BEGIN -- 定义变量 DECLARE s int DEFAULT 0; DECLARE report_id varchar(255); DECLARE report_url varchar(256); -- 定义游标,并将sql结果集赋值到游标中 DECLA
2021-01-06 08:34:29
2125
原创 将网页另存为PDF
1. 先进入网页开发者模式,一般按F12,网页显示如下:2. 点击console:3. 然后输入:(function(){$("#side").remove();$("#comment_title, #comment_list, #comment_bar, #comment_form, .announce, #ad_cen, #ad_bot").remove();$(".nav_top_2011, #header, #navigator").remove();$(".p4course_targ
2021-01-05 13:05:58
250
原创 最长公共子序列问题(动态规划)
若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。给定2个序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的最长公共子序列。
2021-01-04 14:46:15
324
原创 git fetch和git pull的区别
1. git fetchgit fetch相当于是从远程获取最新到本地,不会自动merge,如下指令:git fetch orgin master //将远程仓库的master分支下载到本地当前branch中git log -p master …origin/master //比较本地的master分支和origin/master分支的差别git merge origin/master //进行合并也可以用以下指令:git fetch origin master:tmp //从远程仓库maste
2021-01-03 08:30:09
116
原创 Map集合中value()与keySet()、entrySet()区别
在Map集合中values():获取集合中的所有的值----没有键,没有对应关系,KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取keyentrySet():Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射关系的 Set 视图。 Map.Entry表示映射关系。entrySet():迭代后可以e
2021-01-02 18:02:01
145
1
原创 mybatis批量插入并返回主键
mybatis批量插入在mysql数据库中支持批量插入,所以只要配置useGeneratedKeys和keyProperty就可以批量插入并返回主键了。比如有个表camera,里面有cameraNo,chanIndex,cameraName这三个字段,其中cameraNo是自增主键。下面是批量插入的Dao层接口:void batchInsertCameras(@Param("list") List<Camera> cameras);xml形式:<insert id="batc
2021-01-02 10:00:30
414
原创 Hibernate中的懒加载
懒加载的应用场景考虑一个简单的网络应用程序:网上书店,书店维护者产品的目录。最原始的方法,它可以投射到一个模型实体中去用来管理一系列的产品实体。在一个大的书店中,会有成千上万的产品划分成不同的目录。当一个用户访问这个书店的时候,目录必须要从数据库中加载,我们很可能不想要加载每一个实体到内存中去。对于一个大型的零售商,考虑到物理内存把这个大量的数据加载到机器中或许不可能,即使这是可能的,它也会削弱站点的性能,我们或许只想加载目录,顶多再加上类别。只有当用户深入到目录的时候,他底下的子菜单应该在数据库中加载。
2020-12-31 19:34:28
146
原创 Spring MVC异常统一处理
Spring 统一异常处理有 3 种方式使用 @ ExceptionHandler 注解@Controller public class GlobalController { /** * 用于处理异常的 * @return */ @ExceptionHandler({MyException.class}) public String exception(My
2020-12-30 16:52:36
80
原创 Android开发中自定义RecyclerView Adapter Item显示不全
封装RecyclerViewHolder//万能的ViewHolderpublic class CommomViewHolder extends RecyclerView.ViewHolder { //子View集合 SparseArray 高性能存储View private SparseArray<View> mViews; //布局 private View mContentView; private LayoutInflater mInfla
2020-12-29 11:49:31
333
原创 JavaScript 实现数组去重
我们首先想到的是使用 indexOf 来循环判断一遍,但在这个方法之前,我们不妨先看看最原始的方法:var array = [1, 1, '1', '1']; function unique(array) { // res用来存储结果 var res = []; for (var i = 0, arrayLen = array.length; i < arrayLen; i++) { for (var j = 0, resLen = res.length;
2020-12-28 08:25:01
106
原创 内聚和耦合
内聚1.偶然内聚模块的各成分之间没有关联,只是把分散的功能合并在一起。例:A模块中有三条语句(一条赋值,一条求和,一条传参),表面上看不出任何联系,但是B、C模块中都用到了这三条语句,于是将这三条语句合并成了模块A。模块A中就是偶然内聚。2.逻辑内聚逻辑上相关的功能被放在同一模块中。例:A模块实现的是将对应的人员信息发送给技术部,人事部和财政部,决定发送给哪个部门是输入的控制标志决定的。模块A中就是逻辑内聚。3.时间内聚模块完成的功能必须在同一时间内执行,但这些功能只是因为时间因素才有关联。
2020-12-27 20:03:29
456
原创 Tomcat解决1099端口被占用
win+R命令输入cmd打开命令行窗口输入netstat -aon|findstr 1099,查看端口占用情况输入taskkill -f -pid 14344即可完成
2020-12-27 08:32:11
594
原创 用汇编语言编写程序判断一个年份是否是闰年
废话不多说,直接上代码DATA SEGMENT INFON DB 0DH,0AH,'Please input a year: $' Y DB 0DH,0AH,'This is a leap year! $' N DB 0DH,0AH,'This is not a leap year! $' W DW 0 BUF DB 8
2020-12-26 11:41:50
1902
1
原创 指针与引用的区别
相同点:都是地址的概念:指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。区别:1 指针是一个实体,而引用仅是个别名;2. 引用使用时无需解引用(*),指针需要解引用;3. 引用只能在定义时被初始化一次,之后不可变;指针可变;4. 引用没有 const,指针有 const;5. 引用不能为空,指针可以为空;6. " sizeof "引用得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;7. 指针和引用的自增(++
2020-12-26 08:45:06
73
原创 利用STL比较数据大小并排序
本题目要求读入n个整数(输入数字个数根据输入时随机确定,以输入一个非数字的值作为输入结束标志),利用STL比较数据大小并排序(由小到大升序),然后输出排序后的数据。输入格式:输入在一行中依次输入整数值,每个数字之间用空格分隔,输入数字个数根据输入时随机确定,以输入一个非数字的值作为输入结束标志。输出格式:先输出一段提示“从标准设备读入数据,直到输入是非整型数据为止”,在输入一组数字后,输出排序后的数字,在一行中由小到大依次输出所有值,数字之间用空格分隔。输入样例:10 3 -2 8 20 -9
2020-12-25 19:55:27
284
原创 办事大厅排队
在桂林理工大学综合办事大厅,每天陆陆续续有很多人来排队办事。现在你能否写程序帮助老师时刻了解当前办理业务的情况。输入格式:第一行一个数字N,表示排队信息或者查询信息条目的数量。以下N行,每行的内容有以下3种情况(1) in name 表示名字为name的人员新来到办事大厅,排在队伍的最后。(in和name间存在一个空格,name是名字对应字符串,长度不超过10)。(2) out 表示当前排在最前面的人已经办理完业务,离开了。(3) q 表示一次查询,请输出当前正在办理业务的人,也就是队伍的第1个
2020-12-25 19:53:39
142
原创 顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5示例2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制: 0 <= matrix.length <= 100 0 <= matrix[i].length &l
2020-12-25 08:18:50
85
原创 Map遍历
在这里我总结了Map的两种遍历方式,个人认为第二种使用更加方便: @Test public void test2(){ Map<String, Integer> map = new HashMap<String, Integer>(); map.put("kuzzma", 1000); map.put("durant", 2000); map.put("westbrook", 3000);
2020-12-24 20:58:34
69
原创 二叉树镜像
操作给定的二叉树,将其变换为源二叉树的镜像。二叉树的镜像定义:源二叉树/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { public void Mirror(Tree
2020-12-24 08:30:01
69
原创 @Deprecated的使用
如果有一个方法你觉得不合适,想要删除,但是别人已经引用了很多次,删除了会对他人的工作产生影响,那该怎么办?加入@Deprecated注解即可 @Test public void test1(){ test2(); } @Deprecated public void test2(){ System.out.println("hello"); }这样当你调用test2()时会出现一个删除线,告诉调用者,该方法可以调用,但不是
2020-12-23 18:52:21
506
原创 最长公共子序列问题
若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。给定2个序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的最长公共子序列。
2020-12-23 08:43:39
97
原创 Spring中bean的实例化
我们可以使用普通构造方法创建、静态工厂创建、实例工厂创建三种方式来实例化bean。普通构造方法创建直接配置bean节点即可public class User { public void add() { System.out.println("add()---------"); }}然后通过简单配置一个bean节点即可获取实例静态工厂创建public class User2 { public void add() { System.out
2020-12-22 23:08:35
64
原创 计算矩阵连乘积
在科学计算中经常要计算矩阵的乘积。矩阵A和B可乘的条件是矩阵A的列数等于矩阵B的行数。若A是一个p×q的矩阵,B是一个q×r的矩阵,则其乘积C=AB是一个p×r的矩阵。由该公式知计算C=AB总共需要pqr次的数乘。其标准计算公式为:现在的问题是,给定n个矩阵{A1,A2,…,An}。其中Ai与Ai+1是可乘的,i=1,2,…,n-1。要求计算出这n个矩阵的连乘积A1A2…An,最少的乘法次数。递归公式:请编写程序实现矩阵连乘问题的动态规划算法,自己设计不少于3组的测试数据,要求显示出最少的乘法次数,以
2020-12-22 22:56:05
590
原创 使用内省方式操作JavaBean
内省主要对JavaBean进行操作,JavaBean是一个特殊的Java类,该类中方法名符合特定的规则,我们一般是利用get,set方法来推断属性的名称,而不是直接根据属性来获得名称,因为属性都是私有的,而get,set方法都是共有的。推断规则:如果第二个字母为小写,则首字母小写getAge—>agesetage—>age由于自己根据方法名来推断属性名称非常麻烦,因此我们可以通过内省的方式来调用set,get方法 @Test public void test4() {
2020-12-21 13:05:56
196
1
原创 怎样通过ajax提交数据?
ajax的出现彻底改变了javascript命运,通过ajax可以直接向服务器提交数据,有两种方式:get方式,数据直接拼接在地址中post方式,数据由data字段携带post方式,data中是参数。 $.ajax({ url:"http://localhost/contact2/user/list.do", type:"post", dataType:"json", data:"username=王&order=desc
2020-12-20 16:17:50
145
原创 怎样向泛型集合中插入多种类型数据?
泛型,只是在编译的过程中进行语法检查,查看集合中所存放的类型是否符合要求,在这种情况下,我能不能跳过编译器的检查,向一个存放Integer的List中存放一个String类型的数据?这里要用到Java的反射机制: @Test public void test1(){ try { List<Integer> list = new ArrayList<Integer>(); list.add(1);
2020-12-20 08:17:53
418
1
原创 寻宝
小明有一张藏宝图,上面有m*n个房间,每个房间里面都有一个有一定价值的宝物,小明只能从左上角的房间进入收集宝物,且每次只能向右边或向下边的房间继续寻宝,最终只能从最右下的房间出来。请你帮小明计算下他最多可以收集到多少价值的宝物?输入格式:输入第一行给出两个正整数m,n(1=<m,n<=2000),随后给出m行数据,每行都包括n个正整数,中间用空格分割。输出格式:输出收集到的最大价值v,题目保证v<10^9。输入样例:4 41 18 9 37 10 6 125 13 4 1
2020-12-18 08:22:44
115
原创 矩阵链相乘问题
矩阵的乘法定义如下:设A是m×p的矩阵,B是p×n的矩阵,则A与B的乘积为m×n的矩阵,记作C=AB,其中,矩阵C中的第i行第j列元素cij可以表示为:cij=Σk=1paik×bkj=ai1b1j+ai2b2j+⋯+aipbpj.当多个矩阵相乘时,采用不同的计算顺序所需的乘法次数不相同。例如,A是50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵, 计算ABC有两种方式:(AB)C和A(BC),前一种需要15000次乘法计算,后
2020-12-18 08:18:16
599
原创 小谈拦截器
Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。用户可以自己定义一些拦截器来实现特定的功能。谈到拦截器,还有一个拦截器链。拦截器链就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。看似和过滤器相似,其实两者之间还是有区别。①过滤器是 servlet 规范中的一部分,任何 java web 工程都可以使用。拦截器是 SpringMVC 框架自己的,只有使用了 S
2020-12-16 11:02:22
71
原创 回文串问题
一个字符串,如果从左到右读和从右到左读是完全一样的,比如"aba",我们称其为回文串。现在给你一个字符串,可在任意位置添加字符,求最少添加几个字符,才能使其变成一个回文串。输入格式:任意给定的一个字符串,其长度不超过1000.输出格式:能变成回文串所需添加的最少字符数。输入样例:在这里给出一组输入。例如:Ab3bdAbb输出样例:在这里给出相应的输出。例如:21#include<iostream>#include<cstring>using namesp
2020-12-15 17:36:31
245
原创 Comparable和Comparator接口是干什么的?
Java提供了只包含一个compareTo()方法的Comparable接口。这个方法可以个给两个对象排序。具体来说,它返回负数,0,正数来表明输入对象小于,等于,大于已经存在的对象。Java提供了包含compare()和equals()两个方法的Comparator接口。compare()方法用来给两个输入参数排序,返回负数,0,正数表明第一个参数是小于,等于,大于第二个参数。equals()方法需要一个对象作为参数,它用来决定输入参数是否和Comparator相等。只有当输入参数也是一个Compara
2020-12-14 17:01:13
173
原创 0-1背包
给定n(n<=100)种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C(C<=1000)。问:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两个选择:装入或不装入。不能将物品i装入多次,也不能只装入部分物品i。输入格式:共有n+1行输入: 第一行为n值和c值,表示n件物品和背包容量c; 接下来的n行,每行有两个数据,分别表示第i(1≤i≤n)件物品的重量和价值。输出格式:输出装入背包中物品的最大总价值。输入样例:
2020-12-13 18:12:57
69
原创 JDBC学习笔记(三)
PreparedStatement一个预编译的 SQL 语句,是 Statement 接口的子接口,继承于父接口中所有的方法。Connection 创建 PreparedStatement 对象PreparedStatement prepareStatement(String sql)创建一个语句对象接口中的方法int executeUpdate()执行 DML,增删改的操作,返回影响的行数ResultSet executeQuery()执行 DQL,查询的操作,返回结果集使用步骤1)
2020-12-12 10:24:40
64
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人