自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构与算法学习笔记——堆排序

1) 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。2) 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆,注意︰没有要求结点的左孩子的值和右孩子的值的大小关系。3) 每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆4) 大顶堆举例说明

2020-09-15 17:37:53 250

原创 数据结构与算法学习笔记——线索化二叉树

# 基本介绍1. n个结点的二叉链表中含有n+l【公式2n-(n-1)=n+1】个空指针域。利用二叉链表中的空指针域,存放指向该结点在某种遍历次序下的前驱和后继结点的指针(这种附加的指针称为"线索")2) 这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种3) 一个结点的前一个结点,称为前驱结点4) 一个结点的后一个结点,称为后继结点

2020-09-15 11:38:37 424

原创 数据结构与算法学习笔记——顺序存储二叉树

顺序存储二叉树从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组,顺序存储二叉树的特点顺序二叉树通常只考虑完全二叉树第n个元素的左子节点为2*n+1第n个元素的右子节点为2*n+2第n个元素的父节点为(n-1)/ 2n:表示二叉树中的第几个元素(按О开始编号如图所示)代码实现需求:给你一个数组{1,2,3,4,5,6,7},要求以二叉树前序遍历的方式进行遍历。package tree;public class ArrBinaryTre

2020-09-13 16:44:45 288

原创 数据结构与算法学习笔记——二分查找、差值查找、斐波那契查找

二分查找二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。实现思路首先确定该数组的中间的下标mid=(left+right)/2然后让需要查找的数findval和arr[mid]比较2.1 findVal>arr[mid],说明你要查找的数在mid的右边,因此需要递归的向右查找2.2 findVal<arr[mid],说明你要查找的数在mid的左边,因此需要递归的向左查找2

2020-09-12 16:04:01 219

原创 数据结构与算法学习笔记——基数排序、总结

基数排序

2020-09-09 16:24:35 264

原创 数据结构与算法学习笔记——快速排序、归并排序

快速排序快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列实现思路代码实现import java.util.Arrays;public class QuickSort { public static void main(String[] args) { in

2020-09-09 11:05:33 277 1

原创 数据结构与算法学习笔记——插入排序、希尔排序

插入排序插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。实现思路插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。代码实现import java.util.Arrays;public class

2020-09-08 17:11:04 147

原创 数据结构与算法学习笔记——冒泡排序、选择排序

冒泡排序冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。优化:因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排序写好后,在进行)实现思路(1)一共进行数组的大小-1次大的循环(2)每一

2020-09-08 11:03:38 175

原创 数据结构与算法学习笔记——八皇后问题(回溯算法)

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。思路分析第一个皇后先放第一行第一列第二个皇后放在第二行第一列、然后判断是否OK,如果不OK,继续放在第二列、第三列、依次把所有列都放完,找到一个合适的继续第三个皇后,还是第一列、第二列……直到第8个皇后也能放在一个不冲突的位置,算是找到了一个正确解当得到一个正确解

2020-09-06 10:37:39 176

原创 数据结构与算法学习笔记——递归迷宫问题

递归的概念简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。递归需要遵守的准则执行一个方法时,就创建一个新的受保护的独立空间(栈空间)方法的局部变量是独立的,不会相互影响,比如n变量如果方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据.递归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverflowError,死龟了:)当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回

2020-09-04 10:45:18 157

原创 数据结构与算法学习笔记——约瑟夫(Joseph)问题

问题设编号为1,2,… n的n个小孩围坐一圈,约定编号为k(1<=k<=n)的小孩从1开始报数,数到m的小孩出列,它的下一位又从1开始报数,数到m的小孩又出列,依次类推,直到所有小孩出列为止,由此产生一个出队编号的序列。提示用一个不带头结点的循环链表来处理.Joseph问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个结点从链表中删除算法结束。解题思路第①步——创建单向循环链表

2020-09-02 20:48:09 454

原创 数据结构与算法学习笔记——稀疏数组

基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1)记录数组一共有几行几列,有多少个不同的值2)把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模转换思路二维数组转稀疏数组的思路1.遍历原始的二维数组,得到有效数组的个数sum2.根据sum就可以创建稀疏数组sparseArr int[sum+1][3]3.将二维数组的有效数组数据存入到稀疏数组稀疏数组转原始的二维数组的思路1.先读取稀疏数组的第一行

2020-08-31 09:18:49 147

原创 解决Spirngboot中@Email,@NotBlank不生效的问题

原先springboot框架自动集成了Hibernate validatior所以不需要引入maven文件解放方法:在新版本中添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId></dependency>...

2020-08-18 16:21:23 1301

原创 vue学习笔记——使用vue-router进行页面跳转

第一步:配置跳转页面的组件第二步:配置路由创建router目录并创建index.js文件import Vue from 'vue'import VueRouter from "vue-router";import Context from "../components/Context";import Main from "../components/Main";//安装路由Vue.use(VueRouter);//配置导出路由export default new VueRouter

2020-08-04 15:18:40 433

原创 vue学习笔记——webpack模块化开发

使用webpack模块化开发第一步:创建模板并在主方法内引用模板第二部:配置webpack打包参数第三步;执行webpack打包操作idea将自动生成打包文件第四步:创建index.html页面并导入打包文件实现效果...

2020-08-04 10:00:56 163

原创 vue学习笔记——插槽、自定义事件

插槽slotVue 实现了一套内容分发的 API,这套 API 的设计灵感源自 Web Components 规范草案,将 元素作为承载分发内容的出口。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><div id="app">

2020-08-03 22:18:51 499

原创 vue学习笔记——组件、Axios异步通信、计算属性

组件组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head>

2020-08-03 11:27:25 215

原创 vue学习笔记——基本语法、绑定事件、双向绑定

条件与循环if语句<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><div id="app"> <p v-if="seen=='a'">a</p> <p v-else-if="seen==

2020-08-02 14:59:54 135

原创 vue学习笔记——mvvm原理及第一个vue程序

MVVM是什么?响应式,双向数据绑定,即MVVM。是指数据层(Model)-视图层(View)-数据视图(ViewModel)的响应式框架。它包括:将数据双向绑定(data-binding)作为核心思想,View 和 Model 之间没有联系,它们通过 ViewModel 这个桥梁进行交互。Model 和 ViewModel 之间的交互是双向的,因此 View 的变化会自动同步到 Model,而 Model 的变化也会立即反映到 View 上显示。当用户操作 View,ViewMode

2020-08-02 11:39:33 207

原创 springboot学习笔记——JPA使用

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA整合编写一个实体类(bean)和数据表进行映射,并且配置好映射关系//使用JPA注解配置映射关系@Entity //告诉JPA这是一个实体类(和数据表映射的类)@Table(name = "tbl_user") //@Table来指定和哪个数据表对应;如果省略默认表明就是userpublic class U

2020-07-27 11:32:32 175

原创 springboot学习笔记——docker简单应用

Docker是一个开源的应用容器引擎;是一个轻量级容器技术;Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。核心概念docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);docker客户端(Client):连接docker主机进行操作;docker仓库(Registry):用来保存各种打包好的软件镜像;docker镜像(Images)

2020-07-24 11:34:28 111

原创 springboot学习笔记——thymeleaf使用

springboot 是内嵌web容器的,推荐打成jar包不是war包,如果打包成外包就相当于失去了一些springboot的特性。SpringBoot推荐的Thymeleaf,语法更简单,功能更强大;引入thymeleaf <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thy

2020-07-21 16:06:40 98

原创 springboot学习笔记——日志

1.日志框架日志门面: SLF4J日志实现:Logback;SpringBoot:底层是Spring框架,Spring框架默认是用JCLSpringBoot选用 SLF4j和logback;2.SLF4j使用开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法;给系统里面导入slf4j的jar和 logback的实现jarimport org.slf4j.Logger;import org.slf4j.LoggerFactory;public cla

2020-07-20 13:51:47 126

原创 springboot学习笔记——配置文件

1.配置文件SpringBoot使用一个全局的配置文件,配置文件名是固定的;application.propertiesapplication.yml配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好。YAML(YAML Ain’t Markup Language):以数据为中心,比json、xml等更适合做配置文件YAML:配置例子server: port: 8081XML:<server> <por

2020-07-19 21:36:38 296

原创 ssm学习笔记——springmvc——ssm整合

1.搭建整合环境创建数据库和表结构.创建maven的工程编写实体类,在ssm_domain项目中编写编写dao接口编写service接口和实现类2.Spring框架代码的编写在ssm_web项目中创建applicationContext.xml的配置文件,编写具体的配置信息在ssm_web项目中编写测试方法,进行测试3.Spring整合SpringMVC框架1. 搭建和测试SpringMVC的开发环境在web.xml中配置DispatcherServlet前端控制器在web

2020-07-06 09:25:28 158

原创 ssm学习笔记——springmvc——异常处理、拦截器

异常处理系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息, 后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。异常处理思路Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进 行异常的处理。1. 自定义异常类/** * 自定义异常类 */public class SysException extends Exception {

2020-07-05 23:13:03 160

原创 ssm学习笔记——springmvc——响应数据与结果视图、文件上传

返回值类型1.返回字符串Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址。 @RequestMapping(value="/hello") public String sayHello() { System.out.println("Hello SpringMVC!!"); // 跳转到XX页面 return "success"; }2. 返回值是void如果控制器

2020-07-05 09:35:31 156

原创 ssm学习笔记——springmvc——常用注解

RequestParam注解作用:把请求中的指定名称的参数传递给控制器中的形参赋值属性 :value:请求参数中的名称required:请求参数中是否必须提供此参数,默认值是true,必须提供RequestBody注解作用:用于获取请求体的内容(注意:get方法不可以)属性:required:是否必须有请求体,默认值是truePathVariable注解作用:拥有绑定url中的占位符的。例如:url中有/delete/{id},{id}就是占位符属性:value:指定url中的占

2020-07-03 19:30:37 154

原创 ssm学习笔记——springmvc——入门了解

三层架构使用java语言基本上都是开发B/S架构的程序,B/S架构又分成了三层架构表现层(WEB层):用来和客户端进行数据交换,一般会采用MVC设计模型。表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。业务层(Service层):处理具体的业务逻辑或实现方法,web 层依赖业 务层,但是业务层不依赖 web 层。业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。持久层(DAO层):负责数据持久化,包括数据层即数据库和数据访问层,数据

2020-07-03 19:18:08 128

原创 ssm学习笔记——spring——基于XML/注解的声明式事务控制配置步骤

spring中基于XML的声明式事务控制配置步骤 1.配置事务管理器 2.配置事务的通知 此时我们需要导入事务的约束 tx名称空间和约束,同时也需要aop的 使用tx:advice标签配置事务通知 属性: id:给事务通知起一个唯一标识 transaction-manager:给事务通知提供一个事务管理器引用 3.配置AOP中的通用切入点表达式 4.建立事务

2020-07-01 21:23:31 150

原创 ssm学习笔记——spring——AOP配置

spring中基于XMl的AOP配置 1、把通知的bean也交给spring来管理 2、使用aop:config标签表明开始AOP配置 3、使用aop:aspect标签表明配置切面 id属性:给切面提供唯一标识 ref属性:是指定通知类的Id 4、在aop:aspect标签的内部使用对应标签来配置通知的类型 示例:让printLog方法在切入点方法执行之前执行,所以是前置通知 aop:before:表示配置前置通

2020-06-30 19:13:17 216

原创 ssm学习笔记——spring——动态代理

动态代理: 特点:字节码随用随创建,随用随加载 作用:不修改源码的基础上对方法增强 分类: 基于接口的动态代理 基于子类的动态代理基于接口的动态代理: 涉及的类:Proxy 提供者:JDK官方 如何创建代理对象: 使用Proxy类中的newProxyInstance方法 创建代理对象的要求: 被代理类最少

2020-06-30 10:08:43 113

原创 ssm学习笔记——spring——IoC配置注解类代替XML文件

用注解配置类,作用和bean.xml一样spring中的新注解@Configuration 作用:指定当前类是一个配置类 细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,可以不写@ComponentScan 作用:用于通过注解指定spring在创建容器是要扫描的包 属性: value:和basePackage的作用是一样的,都是用于指定创建容器时要扫描的包 使用此注解就等同于在xml中配置

2020-06-29 10:49:38 183

原创 ssm学习笔记——spring——IoC注解配置

曾经Xml的配置scope="" init_method="" destroy_method=""<property name="" value="" ref=""></property></bean>用于创建对象的他们的作用就和在XML配置文件中编写一个<bean>标签实现的功能是一样的@Component 作用:用于把当前类对象存入spring容器中 属性:

2020-06-28 22:22:01 209

原创 ssm学习笔记——spring——IoC依赖注入

spring中的依赖注入 依赖注入: Dependency Injection IoC作用的作用: 降低程序间的耦合(依赖关系) 依赖关系的管理都交给了spring来维护 在当前类需要用到其他类的对象,由spring为我们提供,我们只需要在配置文件中说明 依赖关系的维护就称之为依赖注入 依赖注入数据有三类: 基本类型和String 其他bean类型(在配置文件中或者注解配置过的bean

2020-06-28 11:27:53 307 1

原创 ssm学习笔记——spring——概述、IoC

程序的耦合耦合:程序间的依赖关系类之间的耦合方法之间的耦合解耦:降低程序间的依赖关系目标:编译器不依赖,运行时才依赖解耦思路:①使用反射来创建对象,而避免使用new关键字②通过读取配置文件来获取要创建的对象全限定类名创建Bean对象的工厂Bean:在计算机英语中,有可重用组件的含义JavaBean:用java语言编写的可重用组件javabean > 实体类它就是创建我们的service和dao对象的。步骤①需要一个配置文件来配置service和dao配置的内容:唯一标识

2020-06-27 19:17:27 180

原创 ssm学习笔记——mybatis——延迟加载、缓存

mybatis的延迟加载问题在一对多中,当我们有一个用户,它有100个账户在查询用户的时候,要不要把关联的账户查出来在查询账户的时候,要不要把关联的用户查出来在查询用户时,用户下的账户信息应该是,什么时候使用,什么时候查询的。在查询账户时,账户所属的用户信息应该是随着账户查询时一起查询出来的。延迟加载在真正使用数据时才发起查询,不用的时候不查询。按需加载(懒加载)立即加载不管用不用,只要一调用方法,马上发起查询通常情况在对应的四种表关系中:一对一,一对多,多对一,多对多一对多,多对

2020-06-26 22:01:41 154

原创 ssm学习笔记——mybatis——连接池、事务、多表查询

mybatis中的连接池mybatis提供了3种方式的配置。配置的位置:主文件SqlMapConfig.xml中的dataSource标签,type属性就是表示采用何种连接池方式。type属性的取值:①POOLED:采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现。②UNPOOLED:采用传统的获取连接的方式,虽然也实现了javax.sql.DataSource接口,但是没有使用池的思想。③JNDI:采用服务器提供的JNDI技术实现,来获取Dat

2020-06-25 18:33:23 129

原创 ssm学习笔记——mybatis——概述

框架概述1.什么是框架框架是软件开发中的一套解决方案,不同的框架解决的是不同的问题。使用框架的好处:封装了很多细节,是开发者可以使用极简的方式实现功能。大大提高开发效率。2.三层架构表现层(web层):战术数据业务层(service层):处理业务需求持久层(dao层):和数据库交互3.持久层技术解决方案Jdbc技术是规范Spring的JdbcTemplate和Apache的DButils是工具类4.mybatis概述mybatis是一个持久层框架,用Java编写的。它封装了Jdbc

2020-06-23 21:40:43 231

原创 嵌入式系统设计学习周记⑩——网络编程

网络基础为什么需要网络通信进程间通信解决的是本机内通信网络通信解决的是任意不同机器通信实现网络通信需要哪些支持通信设备网卡(PC机自带)路由器、交换机光纤、电缆、基站通信协议操作系统自带协议栈裸机开发需要独立的协议栈简单网络通信只需要学会使用系统APITCP/IP协议栈OSI七层网络模型、LINUX四层网络模型协议栈为什么要分层各层之间是独立的灵活信号结...

2020-04-29 10:40:37 312

空空如也

空空如也

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

TA关注的人

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