自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring boot入门程序

pom文件加入的依赖: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.4.RE...

2020-04-20 17:33:00 91

原创 钞票最少张数

 很有意思的问题。以往见过许多教材,对动态规划(DP)的引入属于“奉天承运,皇帝诏曰”式:不给出一点引入,见面即拿出一大堆公式吓人;学生则死啃书本,然后突然顿悟。针对入门者的教材不应该是这样的。恰好我给入门者讲过四次DP入门,迭代出了一套比较靠谱的教学方法,所以今天跑过来献丑。  现在,我们试着自己来一步步“重新发明”DP。1. 从一个生活问题谈起  先来看看生活中经常遇到的事吧——...

2020-04-05 11:27:00 204

原创 http状态码

1开头的http状态码表示临时响应并需要请求者继续执行操作的状态代码。100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。2开头的http状态码表示请求成功200 成功处理了请求,一般情况下都是返回此状态码;201 请求成功并且服务器...

2020-04-04 16:36:00 91

原创 limit查询及优化方法

SQL语句:SELECT * FROM table LIMIT 5,10; //从第六条开始(以0为起点),一共十条,6-15SELECT * FROM table LIMIT 5; //检索前五条,这个5与上条语句不同(上条代表下标),此条代表数量注意:SELECT * FROM t LIMIT 3,-1;这样的语句之前可以执行,现在无法执行了,原因很简单这种写法本身...

2020-04-04 12:16:00 112

原创 分页计算公式

分页计算公式:limit start pageSize;start:就是当前页的起始索引,pageSize就是每页的条数currentPage:就是当前页公式:start=(currentPage-1)*pageSize

2020-04-04 12:09:00 108

原创 缓存穿透、缓存击穿、缓存雪崩区别和解决方案

一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 ...

2020-04-04 09:08:00 60

原创 01背包问题及其拓展

求背包的最大价值,并求其由哪些物品组成(拓展)//01背包问题public class Main{ static int m = 8; static int n = 4; static int[] value = { 0 , 3 , 4 , 5 , 6 }; static int[] weight = { 0 , 2 , 3 , 4 , 5 }; ...

2020-04-03 12:54:00 69

原创 Redis持久化

前言Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);...

2020-03-30 17:27:00 65

原创 Redis事务及发布订阅

Redis的事务能够保证一批原子性的执行,什么是原子性?即所有要么执行,要么不执行。并且在执行过程中不会为其他任何命令提供服务。当Redis重新启动或者加载AOF文件时也会保证事务命令的完整性,体现出其一致性和永久性Redis事务命令?multi incr incrby decr decrby exec discard watch unwatch开启事务后,所有的命令会直接执行吗?不...

2020-03-19 17:26:00 53

原创 synchronized与lock详解

今天面试的时候,被问到了synchronized与lock的详细区别,感觉答的不太好。下午搜了一些资料,对synchronized与lock也有了一个重新的认识两者区别:首先,synchronized是一个Java内置的关键字,在JVM层面,lock是个Java类,是一个APIsynchronized无法判断是否获取锁的状态,lock可以判断是否可以获取到锁synchronized会自...

2020-03-19 15:55:00 62

原创 select into语句分析

SQL SELECT INTO 语句可用于创建表的备份复件SELECT INTO 语句SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。SQL SELECT INTO 语法您可以把所有的列插入新表:SELECT *INTO new_table_name [IN externaldat...

2020-03-18 22:13:00 83

原创 MySQL如何创建临时表

mysql 利用 temporary 关键字就可以创建出一个临时表。创建的这张表会在与服务器的会话终止时自动消失语法:create temporary table tbl_name...;规则:每个会话只能看到自己创建的临时表,不同的会话可以创建相同表名称的临时表。临时表的表名可以和永久表的名字相同。好处:可以利用临时表保存一些临时数据,断开会话自动清除数据坏处:1.与服务器意外断开会话...

2020-03-18 21:56:00 103

原创 MySQL修改字段类型

mysql>alter table 表名 modify column 字段名 类型。数据库中address表 city字段是varchar(30),修改类型可以用(谨慎修改类型,可能会导致原有数据出错)。mysql>alter table address modify column city char(30);修改长度可以用(修改长度,要保证不短与已有数据,以保证原有数据不出错...

2020-03-18 21:51:00 108

原创 MySQL表设计的时候需要注意什么(转载)

https://www.cnblogs.com/rjzheng/p/11174714.html默认InnoDB作为存储引擎1.为什么一定要设一个主键?因为你不设主键的情况下,innodb也会帮你生成一个隐藏列,作为自增主键。所以啦,反正都要生成一个主键,那你还不如自己指定一个主键,在有些情况下,就能显式的用上主键索引,提高查询效率2.主键是用自增还是UUID?肯定答自增啊。inn...

2020-03-18 21:35:00 61

原创 MySQL优化

sql语句上的优化:1.避免使用select*,写出查询需要的具体字段2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引下面有些情况将导致引擎放弃索引而进行全表扫描:3.在where子句中对字段进行null值的判断select id from t where num is null 可以在num上设置默认值0,确...

2020-03-18 21:22:00 78

原创 Mybatis全部标签(转载)

转载:https://blog.youkuaiyun.com/weixin_40950778/article/details/78655288一、定义SQL语句(1)select 标签的使用   属性介绍:     id :唯一的标识符.     parameterType:传给此语句的参数的全路径名或别名 例:com.test.poso.User或user     resultType :语句返回值...

2020-03-18 20:15:00 94

原创 索引失效

索引失效的七种情况:1.有or必全有索引;2.复合索引未用左列字段;3.like以%开头;4.需要类型转换;5.where中索引列有运算;6.where中索引列使用了函数;7.如果mysql觉得全表扫描更快时(数据少);什么时没必要用1.唯一性差;2.频繁更新的字段不用(更新索引消耗);3.where中不用的字段;4.索引使用<>时,效果一般;详述(转)索引...

2020-03-17 22:18:00 90

原创 动态代理

主营业务接口:public interface IUserManger { public void AddUser(String UserName, String Password); public void ModifyUser(int id, String UserName, String Password);}接口实现类:public class UserM...

2020-03-17 15:49:00 58

原创 Spring AOP

AOP属于解释:主营业务(targetobject):crud,安全性检查就是我们的横切关注点,把横切关注点拿出来模块化为一个类,这个类就叫做切面类(Aspect),切面类作用在目标对象之前还是之后还是throws时,叫做advice,作用在目标对象的哪些方法上,叫做pointcut,怎么作用在目标对象上,这个过程叫做织物(weave),织物是一个概念,通过织物怎么作用在目标对象上,需要一个...

2020-03-17 15:15:00 65

原创 Spring三种实例化Bean的方式

使用类构造器实例化(默认无参数)使用静态工厂方法实例化(简单工厂模式)使用实例工厂方法实例化(工厂方法模式)第一种:无参构造器的方法该方式spring ioc容器会调用bean(接口实现类)的无参构造方法来创建对象,当创建一个java类后,系统会自动在类中创默认构造函数,当自己创建个构造方法时默认构造函数就会不存在,所以开发者需确保在bean中存在无参构造方法测试:第...

2020-03-17 13:35:00 67

原创 装饰者模式-自定义连接池

装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例为什么要有连接池数据库的连接对象创建工作,比较消耗性能。如何创建简单的连接池在内存中开辟一块空间(集合),一开先往池子里面放置 多个连接对象。 后面需要连接的话,直接从池子里面取。不要去自己创建连接了。 使用完毕, 要记得归还连接。确保连接对象能循环利用。代...

2020-03-17 11:31:00 46

原创 Spring bean的自动装配

<bean>元素的autowire属性负责自动装配<bean>标签定义Javabean的属性。这样做可以省去很多配置Javabean属性的标签代码,使代码整洁、美观。 1.按bean名称装配 <bean>元素的byName属性以属性名区分自动装配。在容器中寻找与JavaBean的属性名相同的JavaBean,并将其自动装配到Javabean中。...

2020-03-17 09:29:00 58

原创 JSP三大指令

JSP页面中的三大指令:page include taglib一、Page指令的介绍:对整个页面的配置信息的指令。全部都是当前页面的配置信息。去掉JSP的Page指令就是一个HTML文件。page指令怎么加:<%@ page ... %>里面的属性:autoFlush是否清除缓存,默认True,不用修改。ContentType页面的类型,utf-8、GBK、GB2312、GB1803...

2020-03-17 08:52:00 158

原创 JSP九大内置对象

JSP九大内置对象 : 内置对象( 又叫隐含对象, 有九个内置对象 ) : 不需要预先声明就可以在脚本代码和表达式中随意使用 .1. request 对象 :代表的是来自客户端的请求 , 客户端发送的请求封装在 request 对象中 , 通过它才能了解到用户的请求信息 , 然后作出响应 , 它是 HTTPServletRequest 的实例 , 作用域为 request ( 响应生成...

2020-03-17 08:38:00 129

原创 Java异常的捕获顺序(多个catch)

import java.io.IOException; public class ExceptionTryCatchTest { public void doSomething() throws IOException{ System.out.println("do somthing"); } public static void main(S...

2020-03-16 19:11:00 83

原创 Integer.parseInt(s)和Integer.valueOf(s)之间的区别

Integer.parseInt(s)和Integer.valueOf(s)之间的区别前言今天再看Integer源码的时候,发现了一个问题, Integer.parseInt(s)和Integer.valueOf(s)都可以将字符串解析成int类型。那为啥要提供两个不同的方法了,于是去看了一下他们两个方法的源代码实现Integer.parseInt(s)返回值是int类型public st...

2020-03-03 18:58:00 46

原创 mysql忘记密码(MySQL5.7)

1.停止MySQL服务去任务管理器中右键选中MySQL57(有些版本的服务名字可能是MySQL)服务,并停止该服务。方法1:打开计算机管理,找到服务,找到mysql,手动关闭方法2:输入mysql net stop(win10家庭版不适用,命令不齐全)2.跳过验证(skip grant tables)方法1:cmd输入:mysqld --defaults-file="C:\Prog...

2020-03-02 18:46:00 42

原创 java的四种内部类

成员内部类:成员内部类没有用static修饰且定义在外层类的类体中。下面程序在OuterClass类中定义了一个成员内部类Inneclass OuterClass{ //外层类 class OuterClass{ //外层类 private int x = 200; private void print(){ System.out.println(...

2020-02-18 17:55:00 102

原创 Java优先队列的用法

优先队列priorityQueue是Queue接口的实现,可以对其中元素进行排序,可以放基本的包装类型或自定义的类,对于基本类型的包装类,优先队列中元素的默认排列顺序是升序,但是对于自定义类来说,需要自定义比较类priorityQueue的内部实现PriorityQueue对元素采用的是堆排序,头是按指定排序方式的最小元素。堆排序只能保证根是最大(最小),整个堆并不是有序的。方法it...

2020-02-11 13:29:00 63

原创 内存泄露查询

在java中强引用对象若不置为null,可能会导致无法被回收,造成内存泄露,怎么查询呢?在cmd命令下,输入:jps,会显示当前进程号,输入:jmap -histo:live 进程号 > e:log.txt会将文件存储到指定磁盘下,再输入:e: , start log.txt ,用notepad++打开文档,ctrl+f 就可以查询有哪些内存被泄露...

2020-02-09 14:19:00 42

原创 深度优先和广度优先比较

区别:1) 二叉树的深度优先遍历的非递归的通用做法是采用栈,广度优先遍历的非递归的通用做法是采用队列。 2) 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。要特别注意的是,二叉树的深度优先遍历比较特殊,可以细分为先序遍历、中序遍历、后序遍历。具体说明如下:先序遍历:对任一子树,先访问根,然后遍历其左子树,最后遍历其右子树。中序遍历:对...

2020-02-09 11:15:00 73

原创 循环队列

假设循环队列最多能容纳k个整型数字,那么我们需要开辟k+1个空间,如图,当k = 6的时候,空间大小为7,即array.length() = 7.在起始的时候,front = rear = 0;在每次添加数字的时候( enqueue() ),rear都会+1,而k = 6,也就是从初始位置rear = 0时,最多一直连续添加6次,此时 rear = 6,无法再次添加,那么要想再次添加,只有通过出...

2020-02-09 10:20:00 49

原创 抓包工具

下载链接:https://github.com/hehaoyuan/implement/blob/master/FiddlerSetup.rar

2020-02-05 13:10:00 38

原创 Maven配置的坑

前段时间用idea的时候发现mvn用不了了,也不自动下载jar包,于是尝试了各种方法,下面总结一些注意事项:工具:idea 2018.3在setting中搜索Maven关键字:如图,其中Maven home directory是你下载的本地maven,如果你的maven过旧的话,可以下载新的Maven,地址:https://maven.apache.org/download.cgi,之后配...

2020-02-03 18:29:00 81

原创 Mybatis学习笔记

Mybatis是一种面向sql的orm持久层框架,类似于hibernate。iBatis前身,Mybatis底层依赖jdbc驱动程序,它把传统的jdbc连接数据库过程进行了封装,大大渐少了开发人员的工作量,是开发人员只需要专注于sql本身,而且方便代码维护,和持久利用,不用像传统mybatis那样对sql语句做频繁的修改。那么先回顾一下传统的jdbc访问数据库过程:加载数据库驱动创建数...

2020-02-03 17:40:00 39

原创 xml转义字符

今天在写配置mybatis的sqlMapConfig的时候,连接的是5.7版本的MySQL数据库,其url本来写的是: <property name="url" value="jdbc:mysql://localhost:3306/mybatis?charset=utf8"/>但在执行的时候出现了如下警告:原因是MySQL在高版本需要指明是否进行SSL连接。解决方案如下...

2020-02-03 16:42:00 67

原创 JVM知识点总结

原创:https://mp.weixin.qq.com/s?__biz=MzI4NDY5Mjc1Mg==&mid=2247484038&idx=1&sn=e083cc8b248461c8916a819119b059c3&chksm=ebf6daf9dc8153ef27ecd857e6cc85372735e84042679c133892d0993074371a46d...

2019-10-16 13:19:00 52

原创 编程题:利用链表实现栈

class Node<E>{ E data; Node<E> next = null; public Node(E data){ this.data = data; }}class ListStack<E>{ Node<E> top = null; public boolean...

2019-10-13 21:12:00 52

原创 认识数据库的锁

对于针对不同的引擎,数据库锁的实现是不一样的,而现在的大型项目基本都选择了InnoDb作为默认的存储引擎,所以该片篇博客针对InnoDB存储引擎讨论一下数据库锁的的内容。由于InnoDB数据库锁与事务的特性息息相关,所以在此之前我们先回忆一下事务的特性。事务以及ACID属性原子性一致性隔离性持久性得益于InnoDB完整的事务特性的支持,我们才能在MySQL上构建出各种健壮的业务...

2019-10-11 14:53:00 47

原创 MySQL排序

我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的ORDER BY子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。语法以下是 SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:SELECT field1, field2,...fieldN FROM ta...

2019-10-01 21:09:00 48

空空如也

空空如也

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

TA关注的人

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