自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 学习资源分享

各大类型学习资料,建了一个网盘群方便大家学习,这是资源目录:目录:/学习资料 [25.6M] ┣━━.NET [0B] ┃ ┗━━.NETCore开发实战[更多资料关注微信公众号:武培轩] ┣━━安全 [0B] ┃ ┗━━安全攻防技能30讲 ┣━━编辑 [0B] ┃ ┗━━编辑训练营 ┣━━并发 [0B] ┃ ┣━━高并发架构的 36 项修炼 ┃ ┣━━高并发系统设计4

2020-05-18 19:20:48 14517

原创 SpringBoot整合Elasticsearch7.4.1实现建议搜索(Python爬取数据并存es)

背景:最近做了一个App需要使用的搜索建议的功能,效果就是我们再使用百度搜索的时候:可以看到,每输入一个字符就会发送一个请求;这个功能看似很高大上,其实做一个简单的实现还是很简单的。原理:这个技术,主要有以下的技术点:Elasticsearch7.4.1(以下称为ES)推荐ik中文分词插件首先需要将数据存放到ES中,当然存放的时候需要做一些简单的处理,需要将搜索的field...

2020-04-04 22:23:37 920

原创 docker启动mysql相关问题

docker部署mysql最近将自己的项目迁移到docker中,首先就是将数据库mysql’潜移,分别使用了手动部署并添加数据和使用Dockerfile实现自动化部署。手动部署首先当然是拉取相关的mysql镜像了,就使用最新的吧:docker pull mysql然后就是启动mysql,同时带上相关的参数:docker run --name mysql -e MYSQL_RO...

2020-01-15 13:13:11 345

原创 事务的传播行为

事务的传播特性事务的传播特性就是一个事务方法在调用另一个事务方法,导致事务传播行为,一般是一个大的事务中包含一个或者多个小的事务一般这会考虑位于里层的事务是否接受外层事务的管理,这都是可以通过注解上的参数进行配置的,使用方法在@Transational中的propagation属性来配置属性值propagation设置为propagation.REQUIRED的话说明这个方法需要事务,...

2019-08-06 00:38:55 387

原创 Vim命令合集

命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件vim file同时打开多个文件vim file1 file2 file3 ...在vim窗口中打开一个新文...

2019-07-08 15:07:46 90

原创 Linux各目录及每个目录的详细介绍

Linux各目录及每个目录的详细介绍【常见目录说明】 目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。 /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录,是用户主目...

2019-07-08 15:04:21 139

原创 Linux的Top命令解析

Top命令是什么TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;...

2019-07-08 14:59:13 119

原创 JavaWeb知识详解

JavaEE总结JSP页面的组成:注释元素:HTML中的注释:;此注释会显示在客户端中。JSP中的注释<%-- 注释–%>:不会显示在客户端,只会显示在服务器端。脚本元素中的注释:// 多行/****/ 只能用于java脚本由于java脚本语言中。指令元素page指令:language属性 该属性用于设置JSP页面使用的语言,目前只支持Java语言。...

2019-05-28 17:16:33 605

原创 Jackson获取某个子节点的值并将其转化为Java的对象数组

这里的Json数据很复杂,里面有好几层,而且其中 的子节点是一个数组,在这里,需要将数组内容封装为Java的数组对象;Json的内容:{ "tbk_dg_item_coupon_get_response":{ "results":{ "tbk_coupon":[ { "cat...

2019-05-01 22:30:19 3465

原创 动态规划之背包问题

题目描述就不用说了,这里直接给上数据: 背包的容量 : 20 物品的质量:2 3 4 5 9 物品的价钱:3 4 5 8 10其实这种问题,简单了就是每走一步都会有选和不选的两种情况,而这两种情况,必须要选择其中最好的情况:使用B(K,W): k 个商品 ; W 剩下的空间,来表示当前的状态。可以将选择树和状态方程相对应:对于最终的数组都出...

2019-04-02 17:17:41 246

原创 Leetcode347. 前K个高频元素

题目给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小...

2019-03-31 21:18:19 133

原创 问题之如何定位数据库的慢查询并优化

调优策略* 设置数据库的慢查询为on:set GLOBAL slow_query_log = on;* 可以使用slowshow VARIABLES like ‘%quer%’;查看开启状况* 然后设置慢查询的时间限制,默认时10秒,可以将其 设置为1秒。* 这样在慢查询的时候,只要超过时间的限制,就会在日志中打印相关的信息:包括查尊的语句,所用的时间等。* explain分析查询语句:...

2019-03-27 16:35:54 853

原创 Leetcode4最长公共前缀

题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。思路

2019-03-17 11:29:52 94

原创 LeetCode无重复字符的最长子串

题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 ".

2019-03-17 11:02:03 99

原创 Leetcode53最大子序和(Java动态规划)

题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。思路使用动态规划,在求第i个元素的时候,找到以i为结束的子数组中最大的连续数组的和;在求得前面i - 1元素的时候判断大于0,就将其加上,否则,这...

2019-03-16 09:39:29 579

原创 198. 打家劫舍Leetcode

题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃...

2019-03-16 08:47:09 128

原创 求数组中的最大子串和

描述给定一个数组,求得这个数组中最大的字串和:例如: int[] arr = {1, -2, 3, 5, -2, 6, -1};其中最大和的字串为:3, 5, -2, 6思路:开始拿到这种题目的时候会想到暴力解决的方法,即遍历所有子数组的情况,虽然也能解决,但是这样解决复杂度为O(n^2)所以想了另外一种想法;遍历这个数组,设置一个初始值sum存放第一个元素,每...

2019-03-14 16:20:28 2017

转载 多线程中各个关键字yield、sleep、wait

1、sleep()使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程执行完毕...

2019-03-13 21:02:35 693

原创 线程实现的三种方式

实现方式一:继承Thread类:这种方式是比较初级的,在使用的时候直接继承并实现run方法即可,但是大家都知道,Java是单继承的,所以在继承Thread方法之后,就不可以继承其他的方法了。代码public class ThreadTest extends Thread { @Override public void run() { for (int i ...

2019-03-13 20:51:52 148

原创 打印Z字形矩阵

题目描述给定一个二维矩阵,将其用Z字的形状打印出来;例如: {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}打印的结果应该是:1 2 5 9 6 3 4 7 10 11 8 12 思路使用三个变量,row用来控制行,cel用来控制列,再用一个boole...

2019-03-13 16:46:30 573

原创 Linux的文件目录结构

前言由于Linux的根目录只有一个 / ,不想在使用windows的时候有多个盘符来管理,而且在使用的时候,对于文件的存放位置有着很大的讲究,并非随便存放,这样对于文件的管理也十分的方便。结构树目录介绍/bin [重点] (/usr/bin 、 /usr/local/bin)是Binary的缩写, 这个目录存放着最经常使用的命令/home [重点]存放普通用户的主目录,...

2019-03-13 15:03:06 440

原创 层次遍历树

给定一个树,要求一层一层的将树进行遍历例如: 如图的树:根据层次遍历得到的结果应该是:AB CD E FG H I J自定义的树其孩子使用的是链表存储;存储的结果,定义如下public class TreeNode&lt;T&gt; { private T key; public TreeNode&lt;T&gt; parent; public ...

2019-03-11 18:13:24 3506

原创 剑指offer第一题

题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路从二维数组的右上角开始遍历,若当前的数比目标的数下,就将其向下移动,比这个数大就向左边移动,直到找到相等的数字返回。代码:public class Solution { pub...

2019-03-06 21:07:24 274

原创 Leetcode155实现最小堆

描述:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);...

2019-03-03 21:00:33 724 1

原创 RabbitMQ工作模式

rabbitMQ的工作模式有以下几种:1、Work queues2、Publish/Subscribe3、Routing4、Topics5、Header6、RPC此外还有一个入门程序也是一种模式链接Work queues图示:work queues与入门程序相比,多了一个消费端,两个消费端共同消费同一个队列中的消息。使用场景对于任务过重或任务较多情况使用工作队列可以提...

2019-03-03 17:55:34 323

原创 RabbitMQ安装后服务无法打开

介绍RabbitMQ由Erlang语言开发,Erlang语言用于并发及分布式系统的开发,在电信领域应用广泛,OTP(OpenTelecom Platform)作为Erlang语言的一部分,包含了很多基于Erlang开发的中间件及工具库,安装RabbitMQ需要安装Erlang/OTP,并保持版本匹配。注意:安装的时候一定要保持版本匹配,注意RabbitMQ支持的erllang语言版本的匹配,...

2019-03-02 11:43:41 2361

原创 MQ消息队列之RabbitMQ的学习

RabbitMQ简介MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言(一种适用于高并发的语言)开发,基于AMQP(Advanced MessageQueue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。使用场景任务异步处理。将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方...

2019-03-01 17:44:05 244

原创 leetcode136只出现一次的数字

描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路:刚开始在解决这个问题的时候用了一个很笨的方法,使用了java中的数组排序的函数将其排序,然后找出了...

2019-02-28 21:27:26 79

原创 LeetCode234 判断回文链表

题目描述请判断一个链表是否为回文链表。示例 1:输入: 1-&gt;2输出: false示例 2:输入: 1-&gt;2-&gt;2-&gt;1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?思路:这个题目首先应该找到链表的中间的node,然后可以使用栈,将前半部分压栈,然后将其弹出和后半部分的node比较,找链表的中行需要使用的两个...

2019-02-28 20:58:02 153

原创 项目中如何使用异常处理

背景:在刚开始使用javaWeb做项目的时候,对于异常的处理都是在dao中抛出异常,然后在service或者controler中捕获异常然后将异常的内容返回给用户,然而这样的话就会写很多的try-catch的代码,这样必定会发生大量的代码冗余。解决方法在项目中创建一个单独的类用于捕获异常,并且将异常封装,只要有异常发生就会捕获异常,然后做出相应的处理;整个处理的逻辑如下:系统对异常的处理...

2019-02-28 17:13:20 2936

原创 GridFS研究

GridFS介绍GridFS是MongoDB提供的用于持久化存储文件的模块,CMS使用MongoDB存储数据,使用GridFS可以快速集成 开发。它的工作原理是:在GridFS存储文件是将文件分块存储,文件会按照256KB的大小分割成多个块进行存储,GridFS使用两个集合 (collection)存储文件,一个集合是chunks, 用于存储文件的二进制数据;一个集合是files,用于存储文件...

2019-02-27 19:09:07 191

原创 Freemarker静态化

1、使用模板文件静态化定义模板文件,使用freemarker静态化程序生成html文件。操作流程://基于模板生成静态化文件@Testpublic void testGenerateHtml() throws IOException, TemplateException { //创建配置类Configuration configuration=new Configuration...

2019-02-27 16:20:52 121

原创 freemarker的指令介绍

freemarker的核心指令测试中的模型数据: @RequestMapping("/test1") public String freemarker(Map&lt;String, Object&gt; map){ //向数据模型放数据 map.put("name","黑马程序员"); Student stu1 ...

2019-02-27 16:05:41 188

原创 freemarker学习

技术背景:在一般商业的前端开发的时候,对于显示的页面频繁的修改网页的源码来达到修改网页的内容是一件麻烦的事情,一种方法就是使用之前学过的cms来管理页面上的所有的内容,还有就是使用现在所说的freemarker来修改。freemarker 介绍:freemarker是一个基于java开发的模板引擎;即由模板和动态数据相互组合生成HTML文件;之前最常见的就是就是jsp。工作原理:模板+数...

2019-02-24 09:24:57 155

转载 CSDN-markdown编辑器使用指南

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-02-24 08:43:03 445

原创 使用Maven导入项目的时候出项红色的波浪线

在跟着老师做项目的时候,明明是一样的操作,但是在导入pom.xml文件的时候,右边的maven出现了许多的红色的线,琢磨了好久,发现我的依赖中没有版本号,于是,我将依赖在中央仓库中查到后复制到pom.xml文件中,问题得到解决。...

2019-02-11 12:33:38 903

原创 Java锁

锁线程安全在许多高并发的大型应用中,需要同时开启多个线程来处理用户的请求,然而许多工具为了效率是不支持线程安全的,比如我们用得最多得ArrayList,在遇到这种情况得时候就要考虑线程得安全问题。对象头偏向锁对于偏向锁:所谓偏向,就是偏心,即锁会偏向当前已经占有锁的线程。对于偏向锁需要注意以下问题:大部分情况下,是没有竞争的,所以可以通过偏向锁来提高性能;然而在竞争激烈的场合,偏向...

2019-02-07 12:59:35 95

原创 Leetcode 376摆动序列(Java)

题目:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最...

2019-02-06 15:42:12 714

原创 LeetCode455(Java贪心算法)

题目叙述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj &gt;= gi ,我们可以将这个饼干 j 分配给孩子 i,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:...

2019-02-06 12:13:53 207

原创 LeetCode [54] 螺旋矩阵

给出一个二维数组,将其逆序打印描述:二位数组: {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}将其按照逆时针的顺序打出来如下:1 2 3 4 8 12 16 15 14 13 9 5 6...

2019-02-01 12:56:27 622

空空如也

空空如也

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

TA关注的人

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