自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 正则表达式入门到熟练使用

1、正则表达式介绍 用来处理复杂的字符串文本,例如查找、匹配、分割、替换等。大部分语言都有内置的支持,例如:Java、C++。 我会使用工具RegexBuddy进行演示 2、普通字符 在正则表达式中,字母、数字、下划线、以及没有特殊定义的标点符号都是普通字符。正则表达式中的普通字符在匹配的...

2020-01-30 19:17:49 105 0

原创 Spring动态数据源与运行时动态添加数据源

1、多数据源与动态数据源 当项目不只是要用到一个数据库的时候就需要使用到多个数据源了,这种场景很多,比如要查找的数据不在同一个数据库库中,或者是要做数据库读写分离。应对上面的问题主要有两种解决方法。 第一种:在Spring中注入多个DataSource,然后根据不同的DataSource生成不...

2019-08-05 11:34:36 2374 4

原创 MySQL系列-优化之分页查询

1.分页查询之前先按索引排序 我们经常会上一些小说网站看小说,他们总是会把最近更新了的小说放在最前面,也就是第一页,而很久没更新的就放在后面了。那么这样网站是如何实现的呢?我的猜想有一张小说表,表里面一个last_update表示最后更新字段,并且对这个字段建立了索引,按last_update从...

2018-07-30 15:26:33 661 0

原创 MySQL系列-优化之join多表连接

1.先看一个单表案例 有如下下数据表,只有主键id 执行sql【explain select id,n1 from tb where n2='f' and n4>'c' order by n3 desc limit 1;】 通过exp...

2018-07-30 10:22:55 3539 0

原创 MySQL系列-优化之精准解读in和exists

1.解读in和exists 这两个关键字的区别主要是在于子查询上面,in是独立子查询,exists是相关子查询,例如: 用in查询有员工的部门       :select dept_name from dept where id in (select dept_id from emp); 用...

2018-07-26 17:42:02 1159 0

原创 MySQL系列-优化之count()

1.count()函数的作用 count()函数有两个作用,一是统计表数据的行数,二是统计某列非空值得数量。 我们用count(*)来统计行数,当然这个*可以是任意的常量,比如 1 'x' 666 之类的。 count(row)用来统计某列非空值得数量,这个row是列...

2018-07-24 09:40:52 791 0

原创 MySQL系列-优化之like关键字

like关键字我们也是经常使用,用来模糊查询用户名,那么like如何进行优化呢?这篇博客就简单讨论一下like的优化,但是真实的生产环境要比这复杂多了。 1.%号不放最左边 先创建表和索引。 然后进行查询【explain select * from tb where name like ...

2018-07-23 11:55:17 11716 4

原创 MySQL系列-优化之覆盖索引

1.什么是覆盖索引 我们知道MySQL的B+Tree索引是用我们字段的数据来建立索引的,比如说我们的主键id字段,就是用所有的id来组织这颗索引树,如果我们再对name字段建立索引的话,这个二级索引就是用name字段的数据来组织这颗索引树。那么问题就来了,我们知道对于二级索引而言他的叶子节点存储...

2018-07-23 10:22:42 3217 2

原创 MySQL系列-优化之查询索引优化

这篇博客我们来谈谈如何正确使用索引以及正确建立索引,当然在开发当中情况比这个复杂多了,还要根据业务实际情况来,这篇博客就只能算是入门了,要想继续进阶的话可以和公司的DBA混个两年,前提是他愿意要带你玩。话不多说,进入正题。 如果不了解explain执行计划可以看我之前的文章MySQL系列-优化之...

2018-07-22 22:27:23 216 0

原创 MySQL系列-优化之explain执行计划详解

1.id介绍 这个id不是主键的意思,他是用来标识select查询的序列号,包含一组数字,表示查询中执行select子句或者操作表的顺序。 会出现以下情况: id相同:按从上到下顺序执行 id不同:id值越大,优先级越高,越先被执行 id相同不同的同时存在:优先执行id值大的,如果id值...

2018-07-07 17:37:42 5372 4

原创 MySQL系列-优化之再谈索引及explain简介

1.再谈索引 前面我出了一篇关于索引的博客MySQL系列-B+Tree索引详解,索引太重要了可以多谈谈,简单来说索引是排好序的快速查找的数据结构。一般来说一张表建立的索引不要超过5个,数据规模没有达到百万级别,建不建索引也没太大区别。 2.索引的优势 索引具备两个优势 一 、可以快速查找 ...

2018-07-04 23:39:06 204 0

原创 MySQL系列-innoDB行锁详解

一直都很想讨论一下innoDB的行锁,但是看到了何登成大神的博客之后发现他的研究更深入说的更好,是一篇非常优秀的博客,但是需要对索引有比较深入的了解,因此看他的博客之前可以先看看我的一篇关于索引的文章MySQL系列-B+Tree索引详解。同时也深感数据库易学难精,一条SQL下去可能发生了很多你不知...

2018-07-01 21:28:17 813 1

原创 MySQL系列-事务及乐观锁悲观锁

以下我们针对innoDB存储引擎进行分析,作为MySQL的默认存储引擎,innoDB越来越重要了。 1.什么是事务 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全地不执行。 比如说简单的转账事务包含两个SQL语句,一条...

2018-07-01 00:40:26 4281 0

原创 MySQL系列-MyISAM表锁详解

1.S锁和X锁S锁(共享锁)又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改,除非先获取A的X锁。X锁(排他锁)又称写锁,若事务T对数据对象A加上...

2018-06-24 23:33:02 1650 1

原创 MySQL系列-查询语句练习题

先准备4张表:学生表老师表课程表成绩表1.查询选修课程'8105'且成绩在80到90之间的所有记录解析:简单题答案:select * from sc where cno='8105' and grade <=90 and grade &...

2018-06-15 22:03:45 887 0

原创 MySQL系列-查询语句

先准备两张表:tb1tb21.查询所有字段select * from tb1;2.查询指定的列select id from tb1;3.给表取别名 select id from tb1 t1; 或者 select id from tb1 as t1;4.给列取别名select id as ip f...

2018-06-11 22:50:28 230 0

原创 MySQL系列-详解DDL语句

DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter等。下面具体介绍各种常用DDL语句:1.数据库级别显示所有数据库:show databas...

2018-06-10 20:55:47 1650 0

原创 MySQL系列-使用JDBC操作MySQL常用数据类型

MySQL常用数据类型有这些 MySQL系列-常用数据类型1.插入和获取日期类型表的设计如下表中数据如下:如何从结果集中获取这些类型的数据呢?第一个date类型,我们可以使用getDate()方法获取。例如:Date d = resultSet.getDate(1);//返回 java.sql.D...

2018-06-10 11:31:38 348 0

原创 MySQL系列-正确使用原生JDBC

一般我们也很少原生JDBC,都是在ORM框架上做二次开发,确实框架帮我们做了很多事情,但是原生JDBC我们还是需要掌握的,网上很多代码为了省事写的很不规范,很容易误导第一次接触的人JDBC的人,接下来我详细解释一下使用原生JDBC的每个步骤,以及规范的编写代码,以MySQL为例。主要分为以下六个步...

2018-06-08 14:45:10 437 0

原创 MySQL系列-常用数据类型

1.MySQL常用数据类型分类日期类型 数字类型(整数和小数) 字符类型 二进制类型2.日期类型MySQL数据类型字节数含义date3字节日期,格式:2014-09-18time3字节时间,格式:08:42:30datetime8字节日期时间,格式:2014-09-18 08:42:30times...

2018-06-08 01:18:11 319 0

原创 MySQL系列-B+Tree索引详解

1.什么是B+Tree?介绍B+Tree前我们先聊一下在数据结构课程当中学习到的其他树结构,二叉搜索树,平衡二叉树搜索树(红黑树、AVL树),不懂的同学可以先去了解一下。我们知道平衡二查搜索树是对二叉搜索树的一次改进,防止退化成线性表和树高度过高的情况,使其搜索单个值的复杂度为O(logN),这也...

2018-05-31 21:41:13 1565 1

原创 MySQL系列-系统架构及存储引擎介绍

1.什么是MySQL?MySQL是一款性能高、成本低、可靠性好的最流行的开源数据库,被各大互联网公司使用,目前MySQL属于Oracle公司。同时MySQL也迎来了目前为止的最大版本更新MySQL8.0,就像Java8一样,MySQL直接从5.7跳到8.0了,同时也意味着这是一次革命性的版本。2....

2018-05-31 10:41:32 244 0

原创 网易2019实习生招聘编程题集合—牛牛的背包问题(分治+二分查找)

[编程题] 牛牛的背包问题 时间限制:1秒 空间限制:32768K 牛牛准备参加学校组织的春游, 出发前牛牛准备往背包里装入一些零食, 牛牛的背包容量为w。 牛牛家里一共有n袋零食, 第i袋零食体积为v[i]。 牛牛想知道在总体积不超过背包容量的情况下,他一共有多...

2018-05-08 12:10:13 881 0

原创 网易2019实习生招聘编程题集合—矩形重叠(线段树)

[编程题] 矩形重叠 时间限制:1秒 空间限制:32768K 平面内有n个矩形, 第i个矩形的左下角坐标为(x1[i], y1[i]), 右上角坐标为(x2[i], y2[i])。 如果两个或者多个矩形有公共区域则认为它们是相互重叠的(不考虑边界和角落)。 ...

2018-05-08 11:57:19 463 0

原创 算法总结—最大流

题目链接点击打开链接直接套模板就好了,如果求二分图的最大匹配的话可以设置一个超级原点和超级汇点把容量设为1的有向图,跑一次最大流即可。#include<iostream> #include<cstdio> #include<ve...

2018-05-07 12:02:41 144 0

原创 算法总结—字符串匹配

字符串匹配的算法很多,我也只会两种特别典型的,KMP和AC自动机,KMP是单模式匹配是AC自动机的退化版,在单匹配的时候比AC自动机更快一点,实现更简单。AC自动机是多模式匹配,又快又牛逼。KMP模板如下:#include<iostream> #include&...

2018-05-02 13:11:25 139 0

原创 算法总结—线段树

HDU1556点击打开链接 比较简单的一道题,直接查询的时候从上到下把value累加就行。 //hdu 1556 线段树 单点查询 #include #include #include #include using namespace std; int N; typedef struct n...

2018-04-22 12:02:01 133 0

原创 算法总结—最小生成树算法

克鲁斯卡尔算法(本质:边的排序+并查集判断是否成环) 代码模板: typedef struct node { int u,v;//克鲁斯卡尔需要边 但是不需要图 int len; }node; vector edges; int n,m; int bs[105];//并查集 //fin...

2018-03-04 19:02:37 154 0

原创 算法总结—最短路径算法

针对 优先级队列优化过的dijkstra算法 以及 SPFA算法 进行讨论一号选手:优先级队列优化过的dijkstra算法 先贴出该算法的实现模板:void dijkstra(int start) { for(int i=1;i<=T;i++) { dis[i]=inf; }...

2018-02-25 15:03:25 223 0

原创 JavaThink读书笔记

1:首先了解到的就是java泛型可以用来做元组,就行c++里的pair那样。 public class pair { F first , S scond  ...}; 2:泛型类或接口的继承或者实现,这个简单一点,如果不指定泛型的话,直接被当做object。 类似这样的都可以很快的理解 A ex...

2017-10-30 14:47:26 306 0

原创 HeadFirst设计模式读书笔记

简单的做下笔记,以后找起来方便。 1 策略模式 定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。  设计原则: 找出应用中可能需要变化的部分,把他们独立出来,不要和哪些不需要变化的代码混在一起。  设计原则: 针对接口编程,而不是针对实现编程。  设计...

2017-10-29 14:10:28 260 0

原创 斐波那契第k项

按自己风格写的,以后就直接用了。 #include #include using namespace std; typedef long long ll; const ll mod=1e9+7; // [fn] = [1,1] * [fn-1] // [fn-1] ...

2017-09-12 13:54:15 224 0

原创 HDU6201(树上dp)

给定的图有 n 个节点,n-1 条边,这个图是一棵树。 任意一个节点都可以作为根节点,先处理叶子节点在处理上一层,这样处理下来就是一次后序dfs过程了。 对于每个节点来说,有一个最优买入价格(分为两种情况,1:从该节点的所有子树中挑一个最优买入价格+该路径代价,2:从自己这里买), 举个例子,设父...

2017-09-12 12:02:54 588 4

原创 HDU6165(tarjan算法 强连通缩点,拓扑排序)

这里说明一下,tarjan是一个人,他发明的算法都以他命名,所以,tarjan后面要加后缀,不然不知道是哪个算法。 一道比较标准的模板题,这里有篇很好的讲强 tarjan求连通分量 的博客点击打开链接 我这里直接把新图构建出来了,然后拓扑排序即可,只要那一层出现两个入度为0的点即不能到达。 #in...

2017-08-30 10:36:53 439 0

原创 hdu6181 Two Paths

一道A*算法求第k短路的模板题,但是!我有话要说。 可能因为学校老师比较水,我们讲迪杰斯特拉算法的时候老师讲了个n^2算法实现的,教科书上也他妈n^2,我也没细想 后来比赛的时候我自己优化了,结果一百度发现直接优先级队列,elogn。。。。。伤心,错过一道水题。 自己做了个模板,以后直接用。对了,...

2017-08-25 19:32:22 275 0

原创 网易2017春招笔试编程题 分饼干

编程题] 分饼干 时间限制:1秒 空间限制:32768K 易老师购买了一盒饼干,盒子中一共有k块饼干,但是数字k有些数位变得模糊了,看不清楚数字具体是多少了。易老师需要你帮忙把这k块饼干平分给n个小朋友,易老师保证这盒饼干能平分给n个小朋友。现在你需要计算出k有多少种...

2017-08-21 16:04:08 467 0

原创 2017年校招全国统一模拟笔试(第四场)_逃离农场

[编程题] 逃离农场 时间限制:2秒 空间限制:32768K 牛牛在农场饲养了n只奶牛,依次编号为0到n-1, 牛牛的好朋友羊羊帮牛牛照看着农场.有一天羊羊看到农场中逃走了k只奶牛,但是他只会告诉牛牛逃走的k只奶牛的编号之和能被n整除。你现在需要帮牛牛计算有多少种不同的逃走的奶牛群。因...

2017-08-18 14:19:51 488 0

原创 2017 Multi-University Training Contest - Team 7 hard challenge

比赛的时候没有主攻这道题,其实这个题目的关键是那个 l * r 大家都没想出来,遗憾。 角度排序,枚举角度即可。这里利用对称性进行了代码优化。 #include #include #include #include ...

2017-08-16 19:21:13 209 0

原创 腾讯2017秋招笔试编程题_编码

[编程题] 编码 时间限制:1秒 空间限制:32768K 假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa,...

2017-08-16 16:36:03 300 0

原创 网易2018校招内推编程题_小易喜欢的数列

[编程题] 小易喜欢的数列 时间限制:1秒 空间限制:32768K 小易非常喜欢拥有以下性质的数列: 1、数列的长度为n 2、数列中的每个数都在1到k之间(包括1和k) 3、对于位置相邻的两个数A和B(A在B前),都满足(A 例如,当n = 4, k = 7...

2017-08-15 11:04:10 878 0

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