自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 回溯算法题解

回溯跟递归是相辅相成的,只要有递归就有回溯。通常递归函数的下面就是回溯的逻辑。回溯法实际上是一个纯暴力的搜索。回溯法能解决哪些问题?组合问题、切割问题、子集问题、排列问题、棋盘问题……这些问题用传统的for循环嵌套是很难解决出来的。回溯法可以抽象为一个树形结构——n叉树。树的宽度通常是我们需要处理的集合的大小。树的深度通常是递归的深度——纵方向用递归解决。回溯法的模板:void backtracking(参数){ if(终止条件){ 收集结果; return; } for(

2022-10-27 00:14:28 206

原创 选择排序思路及其分析

(1)时间复杂度:外层循环需要处理无序部分,内层循环则在无序部分中查找最小的元素,所以需要的时间复杂度是O(n^2)。首先将数组分为两个部分,一个有序的部分,一个无序的部分,然后每次从无序的部分中选择最小的元素,放到有序的部分中去。(2)空间复杂度:不需要使用额外的空间,所有的操作都是在原来的数组上修改,所以空间复杂度为O(1)。

2022-09-23 23:54:38 191 1

原创 插入排序思路及分析

首先将数组分为两部分,一部分是有序的,一部分是无序的。需要做的是每次从无序部分中选取第一个元素,然后插入到有序部分中的正确位置,插入之后,确保有序部分还是有序的。(1)时间复杂度:第一层循环为未排序的部分遍历,第二层循环在有序部分中查找到正确的位置。所以时间复杂度是O(n^2)。(2)空间复杂度:该排序在原数组内操作,不需要额外的存储空间,所以空间复杂度是O(1)。

2022-09-23 20:02:33 533 1

原创 单例模式之懒汉式和饿汉式

所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类,并且该类只提供-一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。(1)懒汉式:在需要的时候才创建(2)饿汉

2022-07-13 09:55:28 1798

原创 重载和重写的区别

重载:发生在同一个类中,必须相同,不同、不同、也不同,方法的和可以不同,重载发生在编译时期。判断下面的两个方法是否是重载?答案:不是。上面的情况在编译的时候会报错,编译器会认为这是相同的方法,但是返回值不一样,所以报错。重写:发生在父子类中,、必须相同,范围小于等于父类,抛出的范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为则子类就不能重写该方法。...

2022-07-08 18:20:12 111

原创 String、StringBuffer、StringBuilder的区别

是不可变的,因为该类使用修饰字符串数组来保存字符串。和是可变的。和都继承自父类,该父类也是用字符数组保存字符串,并且提供了很多修改字符串的方法比如说方法。中的对象是不可变的,也可以理解为常量,线程安全。对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。并没有对方法进行加同步锁,所以是非线程安全的。每次对 类型进行改变的时候,都会生成一个新的对象,然后将指针指向新的 对象。每次都会对对象本身进行操作,而不是生成新的对象并改变对象引用,相比于使用性能会弱那么一些,但是是线程安全的。...

2022-07-08 17:25:26 86

原创 ==和equals()的区别

==是一个比较运算符equals()方法方法存在两种使用情况:1.类没有覆盖该方法。通过来比较该类的两个对象时,等价于通过"==" 比较这两个对象,使用的是类中的方法。源码如下:2.类覆盖了该方法。一般我们都通过覆盖来比较两个对象中的属性是否相等,若他们的属性相等,则返回true。...

2022-07-08 15:58:37 136

原创 springboot 热部署

热部署,就是在应用正在运行的时候升级软件(增加业务/修改bug),却不需要重新启动应用。大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的Class文件,这个文件里记录着和代码等对应的各种信息,然后Class文件将被虚拟机的加载。而热部署正是利用了这个特点,它监听到如果有Class 文件改动了,就会创建一个新的 ClaassLoader进行加载该文件,经过一系列的过程,最终将结果呈现在我们眼前,Spring Boot通过

2022-07-07 22:11:26 1824

原创 springboot 视图集成

SpringBoot内部支持Freemarker视图技术的集成,并提供了自动化配置类FreeMarkerAutoConfiguration,借助自动化配置可以很方便的集成Freemarker基础到 SpringBoot环境中。2.查找配置类在idea上双击shift搜索,可以看到,freemareker默认加载路径是类路径下一个叫的文件夹,并且后缀默认为。如果我们不想用springboot的默认配置,那么可以在application.yml文件中修改这些配置。4.访问视图在resources目录

2022-07-07 17:46:42 189

原创 spring task定时任务

在项目中开发定时任务应该-种比较常见的需求,在Java中开发定时任务主要有三种解决方案: 一是使用JDK自带的,二是使用第三方组件,三是使用。Timer是JDK自带的定时任务工具其简单易用,但是对于复杂的定时规则无法满足,在实际项目开发中也很少使用到。Quartz 功能强大,但是使用起来相对笨重。而Spring Task则具备前两者的优点(功能强大且简单易用),使用起来很简单,除Spring相关的包外不需要额外的包,而且支持注解和配置文件两种形式。(1)在xml文件中添加task命名空间,并且开启定时任务注

2022-07-06 18:09:15 1162

原创 spring AOP

Aspect Oriented Programing面向切面编程,相比较oop面向对象编程来说,Aop关注的不再是程序代码中某个类,某些方法,而aop考虑的更多的是一种面到面的切入, 即层与层之间的一种切入,所以称之为切面。主要应用于日志记录,性能统计,安全控制,事物处理等方面,实现公共功能性的重复使用。(1)降低模块与模块之间的耦合度,提高业务代码的聚合度。(高内聚低耦合 )(2)提高了代码的复用性。(3)提高系统的扩展性。(高版本兼容低版本)(4)可以在不影响原有的功能基础上添加新的功能被拦截到的

2022-07-06 15:40:48 191

原创 代理模式(静态代理和动态代理)

代理模式是为某一个对象(委托类)提供一个代理(代理类),用来控制对这个对象的访问。委托类和代理类有一个共同的父类或父接口,代理类会对请求做预处理、过滤,将请求分配给指定的对象。生活中的常见代理有:租房中介、婚庆公司等。代理类的两个设计原则:常用的代理模式:(1)有共同的行为(结婚)- 定义接口(2)目标角色/真实角色(新人)- 实现接口(3)代理角色(婚庆公司)- 实现接口 增强用户行为(4)测试结果如下:可以根据需要,通过反射机制在程序运行期,动态的为目标对象创建代理对象。动态代理的两种实现方

2022-07-06 00:45:06 360

原创 spring ioc扫描器

在实际的开发中,bean的数量非常多,采用手动配置bean的方式已经无法满足生产需求,spring这时候同样提供了扫描的方式,对扫描到的bean对象进行统一管理,简化开发配置,提高开发效率。我们可以使用指定的注解(声明在类级别):在xml文件中设置自动化扫描的范围:...

2022-07-05 16:16:57 160

原创 @Resource和@Autowired的区别

@Resource注解实现自动注入(反射)@Autowired注解实现自动化注入:

2022-07-05 16:01:28 121

原创 mybatsi如何批量删除数据

首先来看一下用sql语句如何删除表中的数据:(1)删除表全部数据:(2)删除指定的数据:(3)删除连贯的数据:(4)删除散列的数据:(5)清空表的数据:DELETE和TRUNCATE区别(1)相同点:都能删除数据,都不会删除表结构(2)不同点:TRUNCATE 重新设置 自增列 计数器会归零;TRUNCATE 不会影响事务。1.接口设计1:List类型单参数2.接口设计2:Array数组类型单参数3.接口设计3:可变长度参数以接口设计2为例的mapper.xml文件配置如下:关于节点的配

2022-06-28 17:43:20 5069

原创 前端获取session困难时的解决办法

今天在做项目时遇到的一个问题:人事后台管理系统,登录用户为每个部门的管理人员,现在的需求是:查询该管理人员对应部门的全体员工。那么在查询时,前端就需要传过去该管理人员“所在的部门”这个参数,该参数对应数据库员工表中所在部门的这一列。数据库表如下:layUI表格展示的时候需要填写一个url的后端接口,同时需要传一个参数过去,如下该参数 是登录用户的一个属性,登录的时候就已经将用户对象存进session中了,现在遇到的问题是如何在js中获取到session的值然后传过去。思考了很久,并且上网查了资料,发

2022-06-27 17:03:32 1386

原创 Mybatis查询多条记录并返回List集合

实体对象如下:接口方法定义如下:XML映射文件如下:执行方法:结论:(1)XML中只需属性值为实体对象别名或全路径名。(2)mybatis会通过接口文件的返回值类型来判断返回的是集合还是对象。如果是对象,则按常规查询并返回;如果是List集合,mybatis则会将查询到的多条记录设置进集合中并返回。...

2022-06-26 23:54:51 2710

原创 springmvc执行的过程

执行流程如下:(1)用户发送请求至前端控制器DispatcherServlet。(2)DispatcherServlet收到请求调用HandlerMapping处理器映射器。(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。(4)DispatcherServlet通过HandlerAdapter处理器适配器调用处理器。(5)执行处理器(Controller,也叫后端控制器)。(6)Controller执行完

2022-06-25 17:38:30 113

原创 JSESSIONID是什么

JSESSIONID实际上是一个cookie,服务器用来记录用户session。什么时候种下JSESSIONID?创建会话时种下JSESSIONID。即调用。浏览器创建session流程如下:(1)当第一次访问服务器时,会在响应头里看见Set-Cookie的信息:需要注意的是:只有在首次访问服务器的时候才会在响应头中出现该信息。调用创建会话时,服务器会响应一个cookie给客户端。(2)当再次请求的时候(非首次请求),浏览器会在请求头里将cookie发送给服务器(每次请求都是这样)(3)可以发

2022-06-23 22:17:04 18129 1

原创 springboot静态资源的配置

静态资源的存放路径为classpath,也就是resources目录下的:如下所示的数组存放的是静态资源的访问路径。2.静态资源的访问顺序默认情况下是按照存放静态资源路径的数组顺序访问的。也即按照下面的访问顺序:如上图所示,在这种情况下,访问index.html。那么访问的是里面的index.html。结论:springboot会查找优先级高的文件,从高到低,一直找到所需要的静态资源为止。静态资源文件夹下的所有 index.html 被称为静态首页或者欢迎页,它们会被 /** 映射,换句话说就是,当我

2022-06-21 22:48:53 5902

原创 二叉树基础知识

(1)满二叉树的底层是满的。(2)满二叉树的节点数量:,其中k是层数(从根节点往下数,根节点为第一层)。(1)完全二叉树的底层不是满的,但是从左到右一定是连续的。(1)左子树的所有节点都小于根节点,右子树的所有节点都大于根节点,同时对于每一棵左右子树来说都满足这个规律。(2)查找某个节点的时间复杂度是级别的。(3)二叉搜索树对于节点的布局是没有任何要求的。(1)左子树和右子树的高度的差的绝对值不能超过1。通过指针来指向下一个节点。通过数组来存储节点,从左到右,从上到下,编号为0开始。某一个节点的左孩

2022-06-18 22:29:12 404

原创 cookie和session的区别

位于用户的计算机上,用来维护用户计算机中的信息,直到用户删除。比如我们在网页上登录某个软件时输入用户名及密码时如果保存为cookie,则每次我们访问的时候就不需要登录网站了。我们可以在浏览器上保存任何文本,而且我们还可以随时随地的去阻止它或者删除。我们同样也可以禁用或者编辑cookie,但是有一点需要注意不要使用cookie来存储一些隐私数据,以防隐私泄露。session称为会话信息,位于web服务器上,主要负责访问者与网站之间的交互,当访问浏览器请求http地址时,将传递到web服务器上并与访问信息进行匹

2022-06-17 23:10:28 93

原创 java调用无参构造方法时的一个发现

今天在写java时,突然发现了一个事实,就是如果我们在定义一个类时,类中的属性我们给其赋值,那么在调用无参构造方法创建一个新的对象时,打印这个对象,该对象拥有的属性的值是我们在定义类时所赋的值。如下:测试:再创建另一个新的对象:之前学习的时候没有注意这块,这下终于知道基础的重要性了。...

2022-06-17 22:08:03 140

原创 JavaScrip基础知识

一、什么是JavaScript?

2022-05-06 18:06:01 2162

原创 CSS基础知识

一:CSS

2022-04-30 18:26:10 194

原创 HTML基础知识

一:HTMLHTML:全称是:Hyper Text Markup Language(超文本标记语言)

2022-04-26 20:38:09 227

原创 spring整合mybatis时读取不了配置文件中的内容

项目场景:在刚开始学习ssm框架时,用spring整合mybatis时,遇到的数据库连接的问题。问题描述在配置数据源时,在spring读取配置文件db.properties里面的参数时发生错误,连接不上数据源。报错原因如下:原因分析:我用的数据库是c3p0,配置信息如下:运行测试,报错。原因:db.properties文件中的username在不改变system properties mode时,会取到系统用户名,因此没有匹配到正确的数据库用户名,所以报错:连接数据库出错。解决方案:

2022-04-23 21:09:45 1438

空空如也

空空如也

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

TA关注的人

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