自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Vue日记 -- 2

Vue日记 -- 2组件路由组件组件化开发:整体为一个大组件,通过组件嵌入的方式进行组件化开发,这样同一个组件就可以进行重用,需要更改时只需修改一处即可 ** 组件注册(组件模板必须有唯一的根元素) 全局组件:任何位置均可使用的 如 Vue.component('hello-world', { data() { return { msg: 'helloworld'

2020-09-28 16:20:21 145

原创 Spring Boot日记二

SpringBoot -- 2MyBatis的集成thymeleafMyBatis的集成数据源的配置导入mysql-connector-java,如果使用别的数据源需要导入druid-spring-boot-starter需要在主配置文件中配置基础信息spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/spring01?serverTimezone=UT

2020-09-18 22:36:09 89

原创 Vue日记 -- 1

Vue日记 -- 1模板语法常用特性模板语法模板语法基础使用操作创建Vue实例对象使用el属性来接管页面中某个元素,其值可以为css选择器/dom元素,通过data属性和插值表达式来让vue动态渲染此元素内的数据如: <div id='app'> <div>{{msg}}</div> </div> new Vue({ el: '#app', data: {

2020-09-18 22:33:28 122

原创 Spring Boot日记一

Spring Boot -- 1起步bean属性的注入profile多环境配置起步@SpringBootApplication说明该类为boot核心配置类,与spring的核心配置配效果类似,其内部有@SpringBootConfiguration注解可进一步验证与@Configuration注解的关系@EnableAutoConfiguration 位于上一个注解的内部,内部有@AutoConfigurationPackage注解来完成包的扫描,默认扫描当前主配置类所在的包及其所有子包。@Imp

2020-09-17 21:40:21 77

原创 数据结构算法爬坑日记十九

最短路径Dijkstra算法Floyd算法Dijkstra算法思路:将一个点作为出发点,基于广度优先进行遍历,将出发点到各个点的最短距离记录,在以出发点到各个点最短距离的点进行遍历,查看经过该点到各个点的距离是否是最短距离,如果是就更新,循环此操作直到将所有的点全部遍历代码实现//Dijkstra求解最短路径public class Dijkstra { char[] vertexes;//顶点数组 int[][] commons;//邻接矩阵 int[] alrea

2020-09-09 22:09:06 77

原创 数据结构算法爬坑日记十八

常用算法二贪心算法普利姆算法(Prim)贪心算法思想:使用贪心算法进行求解时,也是将一个大问题分为若干小问题进行求解,在求解时,每一步都使用当前问题的最优解,从而希望最终的结果也是最优的. 贪心算法得到的结果不一定是最优的结果,但都是与最优解接近的结果求解集合覆盖问题问题描述:有若干个电台,每个电台覆盖若干个地区,找出覆盖所有地区的最少电台组合,如果使用穷举法,在电台数量大时,组合的复杂度就是指数级,效率有限代码实现//贪心算法求解集合覆盖public class Greedy {

2020-09-07 19:24:01 81

原创 数据结构算法爬坑日记十七

常用算法一二分查找非递归方式分治法动态规划KMP二分查找非递归方式与递归方式原理相同代码实现//非递归二分查找public class BinarySelect { public static void main(String[] args) { int[] arr = {1, 2, 6, 9, 20}; System.out.println(select(arr, -2)); } public static int select(int

2020-09-05 01:37:07 65

原创 数据结构算法爬坑日记十六

图图的概念图的遍历图的概念相关概念:由于线性表和树只能有一个前驱节点,无法表示多对多的关系,需要图来表示这种关系,图是一种数据结构,节点可以有0个或多个相邻元素,节点也成为顶点,两节点的连接称为边,如果两节点的连线带方向为有向图,无方向则为无向图,带值的连线为带权图(也叫网)图的表示方式: ** 邻接矩阵:用一个n*n的二维数组来表示图的每个节点的连接(n为节点个数) ** 邻接表:邻接矩阵在表示图的时候会有很多个无用的值,造成空间浪费,可以使用数组+链表的方式来解决, 数组来表示每个

2020-08-31 03:58:28 56

原创 数据结构算法爬坑日记十五

平衡二叉树平衡二叉树(AVL)平衡二叉树(AVL)介绍:在使用二叉排序树时,如果出现类似依次增大或依次减小的这种情况,此时的二叉树便类似于单链表了,因为二叉树在查找的时候每次还需要进行判断才能往下走,此时查询速度明显降低,所以便需要平衡二叉树来解决,平衡二叉树也叫平衡二叉搜索树,属于一种特殊的二叉排序树,特点是:它是一棵空树或者左右子树的高度差的绝对值不超过1且左右子树也分别是一颗平衡二叉树,在不符合上述要求时,就需要通过一些策略来对树进行调整来满足平衡二叉树要求调整策略: ** 左旋转

2020-08-30 19:59:15 94

原创 数据结构算法爬坑日记十四

二叉排序树二叉排序树:对于二叉排序树的任意一个非叶子节点,它的左子节点的值比当前节点的值小,右子节点比当前节点的值大(如果相同,放在左右均可,应尽量避免出现相同的值)代码实现 ** 二叉排序树节点类 //二叉排序树节点public class Node { int value;//节点权值 Node left; Node right; public Node(int value) { this.value = value; }

2020-08-29 01:30:33 92

原创 数据结构算法爬坑日记十三

堆排序堆排序堆是一个完全二叉树,每个节点的值都大于或等于左右节点的值的堆叫大顶堆,小于左右节点的值的堆叫小顶堆堆排序思路:先将原数列构造成一个大顶堆或小顶堆(是数列下标对应的顺序存储二叉树),然后将根节点与数列最后的节点进行交换,再将剩余的数列构成一个堆,循环直到得到一个有序序列,一般升序用大顶堆,降序用小顶堆构建大顶堆思路:从最后一个非叶子节点对应子树开始与其左右节点进行比较交换,依次向上比较,直到全部交换完毕即可得到一个大顶堆代码实现(升序)//堆排序public class He

2020-08-28 16:29:59 83

原创 数据结构算法爬坑日记十二

二叉树顺序存储二叉树线索化二叉树顺序存储二叉树数组存储与树存储得相互转换,就是将数据内容也就是二叉树节点以数组方式存储,通过二叉树得方式来获取数组得下标,进而获取数据特点:(n为二叉树得第几个元素,从0开始 对应数组下标) ** 通常只考虑完全二叉树 ** 第n个元素得左子节点为 2n+1 右子节点为 2(n+1) ** 第n个元素得父节点为(n+1)/2代码示例 (中序后序遍历与之类似) ** 顺序存储二叉树类 //顺序存储二叉树public class ArrayBinary

2020-08-26 22:16:21 90

原创 数据结构算法爬坑日记十一

树概念二叉树的遍历、查找和删除概念由于数组和链表在使用过程中检索,删除添加会出现一些效率低的问题,树存储方式可以大大提高检索速度,同时又保证了数据的插入,删除修改速度二叉树常用术语节点:二叉树连接的各个部分根节点:没有父节点的节点子节点:相对于父节点来说的节点叶子节点:没有子节点的节点节点的权:节点值路径:从根节点开始找到该节点的路线层:根节点为第一层,以此类推子树:以子节点为根节点的树是相对于父节点的字树树的高度:最大层数森林:多颗子树共同组成二叉树:每个节点最多有两个子节

2020-08-26 15:11:30 98

原创 数据结构算法爬坑日记十

哈希表哈希表(hash table)哈希表(hash table)哈希表:也叫散列表,通过将关键码值映射到表中的一个位置来访问,加快查找的速度,映射函数也叫散列函数,存放记录的数组叫散列表,在对一些不常改变的数据进行操作的时候,为了加快速度,通常会采用缓存技术将其加载到内存中进行操作,而不直接对数据库进行操作,如redis,散列表就相当于一个简化版redis,可以通过数组+链表或数组+二叉树来实现示例题:一个公司,当有新员工来报道时,将该员工的信息加入,输入员工id时,查找到员工信息(要求不使

2020-08-25 18:17:08 100

原创 数据结构算法爬坑日记九

查找算法二分查找插值查找斐波那契查找常用四种 ** 线性(顺序)查找:就是将需要查找的数列进行遍历挨个比对即可 (无序有序均可) ** 二分查找/折半查找 (需要在有序的前提下) ** 插值查找 (需要有序) ** 斐波那契查找 (需要有序)二分查找思路:将数列的中间值与需要查找的值进行比较,如果大于,则向左递归,如果小于,则向右递归,分别再进行与中间值的对比,循环往复,直到找到这个数,将其位置返回或者循环结束返回没有找到代码实现//二分查找public class BinaryS

2020-08-24 19:13:37 95

原创 数据结构算法爬坑日记八

排序二快速排序归并排序基数排序快速排序思想:通过一次排序将一组数据分为两部分,一部分全部比另一部分小,然后对两部分分别再进行快排,循环此操作,直到不能再分割,便得到一个有序序列代码实现//快速排序public class QuickSort { public static void main(String[] args) { int[] arr = {8, 7, 5, 9, 6, 0, 2, 2, 2, 3, 10, 25, -2, -5,-8,-3};

2020-08-23 15:07:14 101

原创 数据结构算法爬坑日记七

排序算法复杂度排序算法冒泡排序选择排序插入排序希尔排序算法复杂度时间频度:一个算法花费的时间与算法中语句的执行次数成正比,一个算法中执行语句次数为语句频度/时间频度,记为T(n)时间复杂度:T(n)/f(n),当n趋向无穷大时,比值为一个不等于0的常数,则称f(n)是T(n)的同量级函数,记作T(n)=O(f(n)),称O(f(n))为算法的时间复杂度 ** 计算方法 ** 忽略常数项 ** 只保留最高次数项 ** 忽略最高次数项的系数常见的时间复杂度 ** 常数阶 O(1) 通

2020-08-22 18:45:25 115

原创 数据结构算法爬坑日记六

回溯算法八皇后问题回溯法:也叫向前试探法,试着寻找正确的求解,当探索到某一步不符合规则时,便回退到上一步进行重新选择,直到获取预期的解法八皇后问题问题描述:在8*8的国际象棋棋盘上,放置八个皇后且八个皇后不能互相攻击思路:先将第一个放在第一行第一列,然后将第二个放在第二行第一列,检查是否满足规则,如果满足则进入第三个的放置,如果不满足尝试下一列,直到八个全部放置完毕,当得到一种解法之后,回退到上一层的栈内开始回溯,直到获得所有解法代码解答//八皇后求解public class Quee

2020-08-21 15:58:11 80

原创 数据结构算法爬坑日记五

前缀、中缀、后缀计算规则计算器计算规则概念前缀(波兰表达式):前缀表达式的运算符位于操作数之前 如(3+4)*5-6 ==> - * + 3 4 5 6 计算时从右向左扫描,遇到数将其压入堆栈,遇到符号从栈内弹出两个数进行计算,将结果再次入栈,扫描结 束,栈内的值即为结果,减和除先弹出的数在前中缀表达式:我们日常使用的形式(计算机不易识别)后缀(逆波兰表达式):运算符位于操作数之后 如 (3+4)*5-6 ==> 3 4 + 5 * 6 - 计算时从左到右扫描,遇到数将其压入堆栈

2020-08-19 23:24:22 108 1

原创 数据结构算法爬坑日记四

栈栈(stack)数组实现链表实现栈(stack)概述:一个有序列表,先进后出,插入和删除只能在栈的一段进行,叫做栈顶,另一端为栈底,可由数组或链表来实现数组实现 ** 数组模拟类(与链表模拟一起测试)//数组模拟栈public class ArrayStack { int top=-1; // 栈顶 int maxSize; // 栈的最大长度 int[] stack; // 栈存放数据的数据 public ArrayStack(int maxSize){

2020-08-18 18:12:28 88

原创 数据结构算法爬坑日记三

约瑟夫环的解决问题描述:有m个人围成一个圈,指定从第n个人开始依次报数,每报到K时的人出列,然后出列后面的人从1继续报数,无限循环直到剩下一个人为止 ** 代码实现(以环形链表方式) ** 节点类 //节点类public class Node { int id; Node next; public Node(int id) { this.id = id; }}** 环形链表类//环形链表public class RoundLinked

2020-08-17 18:38:01 95

原创 数据结构算法爬坑日记二

单链表链表是一个有序的列表,以节点的方式来存储,每个节点包括data域存数据和next域指向下一个节点,各个节点不一定是连续存储的,实现有带头节点和不带头节点俩种实现方式单链表示例(带头节点的) ** 节点类 //链表节点public class UserNode { int id; String name; UserNode next; //指向下一个节点 public UserNode(int id, String name) { this

2020-08-17 14:06:23 87

原创 maven知识记录

基本一些概念标准目录结构src/main/java 核心代码src/main/resources 配置文件src/test/java 测试代码src/test/resources 测试配置src/main/webapp 页面文件常用命令mvn clean 清理以往编译记录 comlile 编译 test 测试 package 打包 install 安装 deploy 发布依赖传递:依赖项目C依赖B,B依赖A,则C间接依赖A,这里A依赖的ja

2020-08-16 16:03:25 62

原创 数据结构算法爬坑日记一

稀疏数组数据结构分类稀疏数组(sparseArray)数据结构分类线性结构:最常用的数据结构,特点是数据元素之间存在一对一的线性关系 ** 分俩种存储结构 ** 1.顺序存储结构:又称为顺序表,存储元素是连续的 ** 2.链式存储结构:又称为链表,存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址结构常见线性数据结构:数组、队列、链表、栈非线性结构:常见二维数组、多维数组、广义表、树、图稀疏数组(sparseArray)使用场景:如果一个数组很多元素的值都相同时,使用稀疏

2020-08-16 16:02:46 91

原创 Invalid bound statement (not found): mapper.BankMapper.findAll

整合ssm时读取不到映射文件,具体报错信息org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): mapper.BankMapper.saveorg.apache.ibatis.binding.MapperMethodSqlCommand.<init>(MapperMethod.java:225)org.apache.ibatis.binding.MapperMethod.<ini

2020-08-12 18:21:00 263

原创 MyBatis学习第三天--08-11

关联映射,注解开发关联映射注解开发关联映射MyBatis中默认会根据从数据库查询出的字段名与指定的类型的属性名进行一一映射关系,但是如果此类型中包含对象、集合等特殊的属性,MyBatis则无法识别,这时需要我们手动去指定表与属性的映射关系出现此现象的情况为三种 1.一对一 2. 一对多 3. 多对多 示例说明 表之间的关系 order(1)----user(n)----user_role中间表---role(n) ** OrderMapper接口 public interface O

2020-08-11 17:58:29 75

原创 MyBatis学习第二天--08-10

接口代理,动态SQL接口代理模式动态SQL核心配置文件配置接口代理模式如果使用传统方式完成dao层的操作,就需要去手动创建接口的实现类,在实现类中去完成对数据库的操作,增加了结构的复杂,MyBatis中引入了面向接口的代理模式,即不用手动去创建接口的实现类去实现方法完成操作,只需要在执行的时候,通过动态代理的方式来生成接口的实例对象 ** 接口代理的规范 1.映射文件的命名空间必须和接口对应的全限定名一致 2.映射文件的对应操作标签的id必须和接口内对应的方法名一致 3.映射文件的参数类型必

2020-08-10 15:44:01 91

原创 MyBatis学习第一天--08-09

MyBatis基本配置基本API配置文件基本的一些配置基本APIMyBatis概述:解决dao层频繁创建释放相关资源,解除sql语句与执行操作的耦合,简化封装实体的操作相关APISqlSessionFactoryBuilder:工厂构建器,用于创建SqlSessionFactory对象 ** build() 参数一般为读取核心文件的流对象(文件对象),创建SqlSessionFactory对象SqlSessionFactory:创建SqlSession核心对象 ** openSession()

2020-08-09 19:31:48 89

原创 SpringMVC学习第三天--08-08

文件上传、拦截器、异常处理文件上传拦截器异常处理文件上传也是请求的一部分,只不过传递的参数为多部分表单形式具体流程1.maven导坐标 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>

2020-08-08 15:39:13 89

原创 SpringMVC学习第二天--08-07

SpringMVC请求与响应响应请求响应分为页面跳转和回写数据 ** 页面跳转1.直接在Controller的方法中返回字符串即可2.返回ModelAndView对象,视图解析器会解析并渲染出view ** ModelAndView对象一般直接写在参数列表,mvc会自动创建相应对象并传入 ** setViewName() 向其添加字符串,最后与配置的视图解析器前后缀结合跳转到相应位置 ** addObject() 参数为键值对形式,可在跳转的页面内以SpEL表达式根据key获取value

2020-08-07 19:26:49 134

原创 spring-MVC学习第一天--08-06

spring-MVCspring集成web环境spring-MVC基本配置spring集成web环境spring中,想要获取bean就必须先要获取容器对象,而获取容器对象得代码就都是类似的,所以要抽取相同代码,简化开发实现原理:由于web项目在初始化时会自动创建servletContext对象,可以使用监听器去监听servletContext对象的创建,创建容器对象并存入servletContext域对象中流程1.maven导jar包坐标(此jar封装了监听器和获取容器对象的工具类)

2020-08-06 13:38:36 110

原创 spring学习第四天--08-05

JdbcTemplate,声明式事务JdbcTemplate声明式事务JdbcTemplate概念:spring提供的一个对象,对原始jdbc的对象相关操作进行封装JdbcTemplate 的几个常用方法update() 执行增删改操作,传入sql语句字符串和 ? 的值query() 执行查询操作 第二个参数为RowMapper接口类型(行的映射) 通常使用new BeanPropertyRowMapper<>(想要封装成的类字节码对象) 返回此对象的集合queryForObjec

2020-08-05 16:36:58 87

原创 spring学习第三天--08-04

AOP--面向切面编程XML配置的方式注解方式XML配置的方式概念:对方法中相同的代码逻辑进行抽离,使用动态代理的方式在运行期间来进行将方法组合增强,降低耦合性底层使用jdk动态代理和cglib动态代理方式,在运行期间容器对切点进行监控完成代理AOP中一些术语Target(目标对象) 需要被增强的对象Proxy(代理) 代理对象(目标对象被增强之后产生的一个代理类)Joinpoint(连接点) 可以被增强的方法Pointcut(切点) 需要被增强的方法Advice(通知) 拦截到连接点之后

2020-08-04 13:57:15 109

原创 spring学习第二天--08-03

注解开发、junit集成配置数据源(也就是数据库连接池)基于注解开发junit的集成配置数据源(也就是数据库连接池)其实也是bean的配置,只是bean的类是属于外部引入的spring加载properties配置文件<context:property-placeholder location="classpath:jdbc.properties"/> ** location属性代表去类的根路径下去找,一般配置文件放在maven项目对应配置资源文件夹即可当把配置文件加载进spring

2020-08-03 16:21:16 152

原创 spring学习第一天--08-02

想不起来名字配置文件配置文件

2020-08-02 19:58:58 109

原创 反射、注解入门

反射和注解反射注解反射反射:将类的每一个部分都拆分成对象使用反射中需要先获取类的字节码文件Class对象,然后调用Class类中的方法来获取类的各个部分的对象获取Class对象的方式1.利用类的class属性 2.通过实例对象getClass()方法 (Object中的方法)3.通过Class类中静态方法 forName(String className) 参数为某个类的全路径的字符串 完整包名的路径Class类中的常用方法 getConstructors() 获取公共构造函数对象数组

2020-07-28 18:37:29 70

原创 SQL多表、事务

SQL多表和事务多表查询内连接外连接子查询多表查询如果直接查询多表因为查询得是多表得笛卡尔积,数据量比较大,并且会出现大量无用数据所以需要进行条件限制内连接外连接示例表student表+------+----+----------+-----+-----+| name | id | class_id | sex | age |+------+----+----------+-----+-----+| 张三 | 1 | 1 | 男 | 12 || 李四

2020-07-27 17:40:34 177

原创 SQL约束操作相关

SQL基础--2约束非空约束和唯一键约束主键约束和自动增长外键约束约束对表中的数据进行限定,保证数据的完整性、有效性和正确性非空约束和唯一键约束非空约束 not null 此列的值无法为空 唯一键约束 unique 此列的值无法重复添加方式1.创建表时添加create table if not exists student( name varchar(10) not null unique ** 唯一键还可以在所有字段之后添加 unique key (字段名))2.创建表之后添加a

2020-07-26 17:59:13 140

原创 SQL基础基本操作

sql基础sql操作分类常用操作DDLDMLDQLsql操作分类1.DDL 数据定义语言 指对数据库、表、列等的操作关键字 create 、drop、alter2.DML 数据操作语言 指对数据库中的表的增删改操作关键字 insert、delete、update3.DQL 数据库查询语言 指对数据库中的表的查询操作关键字 select、where4.DCL 数据库控制语言 指对数据库的访问权限和安全级别的操作关键字 crant、revoke常用操作DDL只记录日常用的多的,由于初学接

2020-07-25 21:36:16 1057

原创 DOM和BOM相关API复习总结

dom和bomDOM获取元素方法事件操作元素BOMDOM文档对象模型,代表整个浏览器页面,里面每个标签都是一个元素对象获取元素方法//根据id选择元素document.getElementById()//根据css选择器获取元素document.querySelector(css选择器)//根据css选择器获取元素 获取元素集合document.querySelectorAll(css选择器)事件事件注册元素.事件名=处理函数元素.addEventListener(事件名,处理函

2020-07-14 17:36:38 340

空空如也

空空如也

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

TA关注的人

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