自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (4)
  • 收藏
  • 关注

原创 【并发】强大的CompletableFuture

引子为了让程序更加高效,让CPU最大效率的工作,我们会采用异步编程。首先想到的是开启一个新的线程去做某项工作。再进一步,为了让新线程可以返回一个值,告诉主线程事情做完了,于是乎Future粉墨登场。然而Future提供的方式是主线程主动问询新线程,要是有个回调函数就爽了。所以,为了满足Future的某些遗憾,强大的CompletableFuture随着Java8一起来了。Future传统多...

2020-03-02 17:00:58 191

原创 Java设计模式【建议收藏版】

引子设计模式是很多程序员总结出来的最佳实践。曾经在刚开始写项目的时候学习过设计模式,在开发过程中,也主动或者被动的使用过。现在写代码虽说不会特意明确在用哪种设计模式,但潜移默化的写出来公认的最佳实践代码,毕竟看的比较清爽。为什么再看一遍设计模式,主要有几个原因:第一,很多优秀的源码基本都使用了设计模式,明确设计模式能够更好的看源码。第二,很多中间件设计理念也是基于设计模式的,还有其他的语言,都...

2020-03-02 16:54:54 165

原创 SpringBoot+SpringSecurity+jwt整合及初体验

原来一直使用shiro做安全框架,配置起来相当方便,正好有机会接触下SpringSecurity,学习下这个。顺道结合下jwt,把安全信息管理的问题扔给客户端,准备首先用的是SpringBoot,省去写各种xml的时间。然后把依赖加入一下<!--安全--><dependency> <groupId>org.springframework.b...

2019-06-01 19:31:58 12137 16

原创 @Transactional回滚问题(try catch、嵌套)

Spring 事务注解 @Transactional 本来可以保证原子性,如果事务内有报错的话,整个事务可以保证回滚,但是加上try catch或者事务嵌套,可能会导致事务回滚失败。测试一波。准备建两张表,模拟两个数据操作CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) D...

2019-05-26 16:14:17 6798 4

原创 一篇线程池,肝了它!

何为线程池?顾名思义,线程池就是管理线程的池子。可以利用线程的复用,降低资源消耗,提高响应速度。这里解释一下,一个线程从类加载到到被垃圾收回是十分消耗资源的,也是需要一定响应时间的,我们从线程池中拿一条线程复用,省去了创建到销毁的过程,降低资源消耗,响应时间也会短很多。Executor是Java并发的一个框架,它可分为两部分:任务,即业务的逻辑编写,需要代码实现Runnable接口或者Callable接口;执行任务:把任务分派给多个线程的执行机制,即线程池的工作,需要实现Executor接口或者Execu

2021-09-28 18:17:26 329 2

转载 Idea快捷键大全(Windows)

Ctrl 快捷键介绍Ctrl + F在当前文件进行文本查找 (必备)Ctrl + R在当前文件进行文本替换 (必备)Ctrl + Z撤销 (必备)Ctrl + Y删除光标所在行 或 删除选中的行 (必备)Ctrl + X剪切光标所在行 或 剪切选择内容Ctrl + C复制光标所在行 或 复制选择内容Ctrl + D复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 (必备)Ctrl ...

2021-05-15 11:06:27 215

原创 Elasticsearch操作实践手册|建议收藏篇

我是啤酒就辣条。但行好事,莫问前程。官方为我们提供了多种语言操作Elasticsearch的API,可以很方便的在项目中操作。学习利用原生请求操作Elasticsearch,方便维护数据库,还能加快学习使用不同语言的API。本博客使用kibana发起请求,使用kibana可以查看快捷键。索引操作创建索引创建索引使用PUT请求,后面跟上索引名称就好了,由于7.x默认type为_doc,所以后面不必跟上type了。在PUT简单请求同时,可以加上JSON请求体,进行复杂创建。PUT /user.

2020-11-25 13:30:06 490 4

原创 Elasticsearch基本概念和索引原理

我是啤酒就辣条。但行好事,莫问前程。Elasticsearch是什么?Elasticsearch是一个基于文档的NoSQL数据库,是一个分布式、RESTful风格的搜索和数据分析引擎,同时也是Elastic Stack的核心,集中存储数据。Elasticsearch、Logstash、Kibana经常被用作日志分析系统,俗称ELK。说白了,就是一个数据库,搜索贼快(但是插入更新较慢,要不然其他数据库别玩了)。速度快,还可以进行分词,非常适合做搜索,例如商城的商品搜索。为什么快,后面讲原理的时候会.

2020-11-22 13:23:04 783

原创 NoSuchFileException: ...\plugins\elasticsearch-analysis-ik-7.3.1\plugin-descriptor.properties

安装ik分词器的时候,重启es,报错。找不到plugin-descriptor.properties这个文件,我看了还真的没有啊。。。找了半天,最后发现下错包了。。。去官网下第一个zip文件。开始下的第二个源码包,晕。。。...

2020-11-17 21:01:58 2101 3

原创 Linux下安装elasticsearch

平常用着挺爽,没想到安装还挺费劲。遇到好多问题,记录一下。环境腾讯云的centos7elasticsearch7.10.0(截至2020/11/16最新版本)Java11(最新版本的elasticsearch已经不支持JDK1.8了),这边JDK11安装就不说明了,记得改环境变量/etc/profile,再刷新配置source /etc/profile就OK了。如果你是低版本,用JDK1.8就好下载与安装elasticsearch7.10.0下载根据你的服务器架构来选择,我的是x86.

2020-11-16 15:58:36 117

原创 Python库的安装、卸载、更新

以matplotlib库举例安装pip install matplotlib卸载pip uninstall matplotlib查看库的版本pip show matplotlib更新pip install --upgrade matplotlib查看所有已安装的库pip list查看所有过期的库pip list --outdated

2020-11-13 17:12:39 193

原创 【那些年我们用过的Redis】还记得大明湖畔那些Redis数据吗?

redis五种常用的数据结构为``

2020-11-07 16:18:20 218

原创 【那些年我们用过的Redis】Redis集群搭建原来这么简单

Reids服务集群模式可分为主从、哨兵、Cluster模式。本博客主要介绍主从和Cluster模式目录三种集群模式简介主从模式Cluster模式三种集群模式简介主从模式:主从模式是三种模式中最简单的,一般有一个master服务和多个(至少一个)slave服务组成。主要实现读写分离,减轻单Redis服务压力。master负责写数据,然后将数据copy给slave,slave服务负责读数据。哨兵模式:主从模式有个弊端,就是一旦master服务挂掉,Redis服务就无法再写入数据,slave并不会升级.

2020-11-06 23:25:21 206

原创 【那些年我们用过的Redis】Linux下Redis安装与使用

一款由C编写的开源、基于内存、单线程、可持久化的NoSql数据库。目录环境与版本为什么不安装redis6版本?安装修改配置文件启动与使用安装并使用iptables环境与版本linux环境为腾讯云单核``CentOS7.2.1511。redis版本为5.0.9。Redis官方下载地址.为什么不安装redis6版本?CentOS7,原装的gcc版本为4.8.5。安装redis6需要升级gcc版本,目前最新的gcc版本为gcc10,辣条君尝试安装gcc9版本,发现编译2个多小时都没有结束。网上说,.

2020-11-06 14:31:52 293

原创 辣条君写爬虫4【帮小姐姐删垃圾邮件】

我司系统报错或者重要监控数据会发邮件到个人邮箱,这就导致邮箱一段时间就好几百页了。小姐姐说,辣条君和某昊然谁先帮她删完邮件,就和谁去看电影。于是乎,打算写个小脚本,先拿自己的账号实验一下吧~Tip:本文仅供学习与交流,切勿用于非法用途!!!目录1.需求分析2.撸起袖子写代码3.完整代码1.需求分析这次,我们需要删除的QQ邮箱内的部分邮件。只需要将我司日志那些邮件,全部勾选,然后点击最上面的彻底删除就好了嘛。so easy。首先我们可以抓包,找接口。由于涉及登录,我打算用笨方法(还不是菜).

2020-11-02 15:52:40 766 5

原创 搞明白synchronized和ReetrantLock

上一篇文章,我们熟悉了Java锁的分类。今天,来学习下Java中常用的悲观锁synchronized和ReetrantLock吧。学习使我快乐,哦耶!目录synchronizedsynchronized是什么?synchronized锁的级别synchronized的基本使用synchronized对象级别的锁synchronized类级别的锁synchronized是重入锁ReetrantLockReetrantLock基本使用ReetrantLock重入性公平锁和非公平锁ReetrantLock可.

2020-10-31 18:11:04 278 3

原创 Java锁分类原来是这个样子

学了几天python,辣条君始终不忘自己其实是个Javaer。来,跟着辣条君一起看看Java锁是如何分类的吧。Java锁是为了保证并发过程中,数据维护的准确性。乐观锁与悲观锁乐观锁:认为当前读取数据的时候,不会有线程去修改数据,所以不需要加锁。当更新数据的时候,首先查看数据和自己曾经记录的数据是否一致,如果一致,则更新之;如果不一致,采取一些手段,比如报错或者自旋(自旋后面会讲)。举个例子,一个线程A读取账户余额时,不会加锁,读到20元,线程A账户记录更新为20元。然后线程A为账户余额增加5元,.

2020-10-29 17:03:32 164 2

原创 辣条君写爬虫 3【爬取贝克街用户】

话说python爬虫界,有个非常知名的框架Scrapy。异步爬取,使用简单,功能强大。辣条君,学习之,练习之。贝克街,一个推理爱好者论坛网站,用户数据量12W左右,很适合Scrapy学习练习爬取。本篇前半部分会介绍一点点基础,毕竟要照顾小白同学们嘛~Tip:本文仅供学习与交流,切勿用于非法用途!!!目录01. 写在前面的话02. Scrapy安装03. 项目结构简介04. 需求分析05. 获取用户信息06. 获取关注者列表07. 获取粉丝列表08. 运行09. 结束01. 写在前面的话本博客.

2020-10-27 13:52:35 261

原创 辣条君写爬虫 1 【贝壳房价爬取】

学习用python写爬虫有几天了,下面写一个小爬虫验证下学习成果吧。本文适合小白食用,各位大佬您就图个乐~Tip:本文仅供学习与交流,切勿用于非法用途!!!目录一、网页分析二、撸起袖子写代码爬取解析储存多进程三、结束一、网页分析爬取贝壳网石家庄二手房信息,先打开链接 https://sjz.ke.com/ershoufang/。不添加筛选条件,发现总共有42817套房子。我们点击第二页,再查看链接变成了https://sjz.ke.com/ershoufang/pg2/。所以,可发现/.

2020-10-17 17:44:09 805 6

原创 requests.text 和 content的区别

content :得到的是二进制,可以设置 r.encoding 修改编码。text: 是根据Requests推断出编码,将二进制转为字符串,所以返回值是字符串。也可以通过 r.encoding 修改编码。

2020-09-30 11:28:13 278

原创 Python生成自定义表头Excel

前言有个小需求,要生成一个excel,自定义表头那种,忽然想起原来写的扒拉豆瓣电影的脚本。贴上,一看就懂。今天试了一下,发现原来的脚本需要加上header,设置User-Agent,否则读出来页面是空。用的 pandas ,除了install 开头的三个模块,还需要insatll openpyxl(pandas必需)、lxml(我代码必需)代码import requests as rqfrom bs4 import BeautifulSoupimport pandas as pdheade

2020-07-21 16:49:28 6795 2

原创 【算法】回溯法(N皇后问题) LeetCode51、52

前言LeetCode51、52 属于经典的八皇后问题,前者是输入路径总数,后者是计算路径总数,可以说明白了51题,52题只需要在输出一个结果那里换成累加器就好了。此题主要是用了回溯法,其实就是深搜,如果一条路能走通就走到底,如果走到某一步走错了,回到上个岔路口换条路走就好了。问题描述先看51题n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方

2020-06-08 16:03:31 169

原创 【算法】动态规划 LeetCode62、63

前言LeetCode62、63属于动态规划类型的题目,其中63是62的加强版。所以,明白了62的思路,63就非常简单了。问题描述先看62问题描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?解题思路从终点出发寻找规律,由于机器人只能向下或者向右,所以,分别计算终点上面那格路径总数和左边那格路径总数相加即可。以此类推,从起点到

2020-06-08 15:32:30 154

原创 Python 镜像

清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学:http://pypi.hustunique.com/山东理工大学:http://pypi.sdutlinux.o...

2020-03-20 08:48:53 121

原创 【Java基础】String、StringBuffer、StringBuilder

我是 啤酒就辣条,一个Java。学而时习之,不亦说乎?希望通过博客的形式,总结、分享,梳理自己、帮助他人。另外,啤酒就辣条,味道不错哦~可变性可变性是指引用所指向地址区域的内容是否可变。 下面通过示例来说明String是不可变的,StringBuffer、StringBuilder是可变的。示例public class StringTest { public static vo...

2020-03-04 10:12:19 101

原创 【Java基础】static和final

我是 啤酒就辣条,一个Java。学而时习之,不亦说乎?希望通过博客的形式,总结、分享,梳理自己、帮助他人。另外,啤酒就辣条,味道不错哦~staticstatic 关键字是将某些属性(变量、方法、代码块、类等等)直接归属于类。由于static的存在,实现了共享,极大的节约了内存空间。静态变量被static修饰的变量,可以不生成对象,直接用类.变量的形式调用。应用场景一般为全局常量,例如r...

2020-03-04 10:11:50 138

原创 【java基础】==和equals

我是 啤酒就辣条,一个Java。学而时习之,不亦说乎?希望通过博客的形式,总结、分享,梳理自己、帮助他人。另外,啤酒就辣条,味道不错哦~两种相等==是比较两个对象引用所指向的地址是否相同。equals本身等同于==,但是由于经常被重写,所以常被用来判断两个对象内容是否相同。示例展示首先新建一个类CPUpublic class CPU { private String nam...

2020-03-04 10:11:11 87

原创 【java基础】线程的状态与使用

我是 啤酒就辣条,一个Java。学而时习之,不亦说乎?希望通过博客的形式,总结、分享,梳理自己、帮助他人。另外,啤酒就辣条,味道不错哦~线程的状态与转换线程的六种状态线程转换开始:从New -> RUNNABLE。从线程诞生到运行状态,一般使用方法Thread.start()。内部运行:RUNNABLE状态包含RUNNING(运行中)和READY(就绪),从RUNNING...

2020-03-04 10:10:35 114

原创 【java基础】异常处理

我是 啤酒就辣条,一个Java。学而时习之,不亦说乎?希望通过博客的形式,总结、分享,梳理自己、帮助他人。另外,啤酒就辣条,味道不错哦~异常的分类异常是阻止当前方法或作用域继续执行的问题。异常分为两种,一种是不可控的Error,它有由环境产生的错误,代码层面无法解决的问题,比如VirtualMachineError(虚拟机资源枯竭时报错)。还有一种是由你代码逻辑产生的Exception,是...

2020-03-04 10:09:15 112

原创 【Java基础】IO流

我是 啤酒就辣条,一个Java。学而时习之,不亦说乎?希望通过博客的形式,总结、分享,梳理自己、帮助他人。另外,啤酒就辣条,味道不错哦~流的定义流是一组有序的字节集合,是对数据传输的抽象。流的本质是数据传输,根据传输的特性,流又被分为多种情况。流的分类按照数据类型可以分为字符流和字节流。字节流基本单位是一个字节(8bit),可以处理所有类型的数据。字符流基本代为是多个字节(一般是两...

2020-03-04 10:08:40 80

原创 【Java基础】Java拷贝

我是 啤酒就辣条,一个Java。学而时习之,不亦说乎?希望通过博客的形式,总结、分享,梳理自己、帮助他人。另外,啤酒就辣条,味道不错哦~浅拷贝和深拷贝浅拷贝是将基本数据类型复制一份,共用引用类型的数据。深拷贝是在堆中完全创建一个新的对象,基本数据类型和引用数据类型都进行复制。代码示例浅拷贝首先创建两个类 Father 和 Childpublic class Father imp...

2020-03-04 10:05:46 211

原创 【言简意赅】SpringBoot中线程池的使用

在稍微大型的项目种,不可能直接new Thread(),既不利于维护,也不支持服用。那么就需要使用Spring优雅的创建线程。线程池的配置@SpringBootConfiguration@EnableAsync(proxyTargetClass = true) // 强制使用CGLIB代理public class ExecutorConfig implements AsyncConfi...

2020-02-29 10:01:24 835

原创 SpringBoot整合kaptcha验证码

说明我用的是SpringBoot2 + thymeleaf。如果前后端分离的项目同理,无非是前端进行请求,后端配置验证码样式。关于Kaptcha,是一款可高度配置的实现验证码的工具。可配置字体样式、大小、颜色,验证码边框设置以及配置干扰线等等。配置首先导入依赖<!-- 验证码 --><dependency> <groupId>com.gith...

2020-02-21 14:26:34 370

原创 @Resource和@Autowire的区别

@Resource 根据名称寻找,如果找不到会根据类型寻找。如果指定了参数name,则只能通过名称寻找;如果没有指定参数name,则首先根据取字段的名称为name值寻找,找不到再根据类型寻找。@Autowire 只能根据类型寻找,如果想通过名称寻找,需要配合注解**@Qualifier**。...

2020-02-20 11:25:56 1668

原创 【bug001】Unable to start ServletWebServerApplicationContext due to missing ServletWeb

遇到如题一个bug,“Unable to start ServletWebServerApplicationContext due to missing ServletWeb”说明我使用springboot2.2.4(经验证和版本无关,2.1.9同样会出现问题)。没有用tomcat,用的是undertow容器。server: port: 4311 undertow: di...

2020-02-20 10:19:11 369

原创 【小DEMO】回溯法破解数独

import java.util.*;public class Sudoku { // 方案数量 public static int caseCount; // sudoku 二位数组 public static int[][] chessboard=new int[9][9]; // 初始化二位数组 public static void ini...

2020-01-16 14:16:58 108

原创 再来看看Java的新特性——其他新特性

关于剩余Java8新特性知识点总结,包含:默认方法、Optional、CompletableFuture、时间相关。默认方法默认方法皆在帮助Java新功能可以兼容低版本JDK已开发的程序。 比如说,给一个低版本已存在的接口增加新方法,那原来实现该接口的类是不是都需要实现新的方法,这非常不友好,也不利于项目JDK版本的升级,所以引入新的规则默认方法。使用方法也非常简单,只需要在接口方法前...

2019-11-24 20:03:32 121

原创 再来看看Java的新特性——Stream流

半年前开始试着使用Java的新特性,给我印象最深的就是Stream流和Optional。其中Stream提高了看法效率,让代码看起来十分清爽。为什么要使用流?摘要中已经说明了,为了提高开发效率。流可以帮助我们高效操作集合,流帮助我们通过流水线的方式对集合进行删减、合并、排序、修改,并最终返回我们想要的元素数据或统计数据。流水线的意思是说,一批元素不需要等待全部元素都完成某步操作,才进行下步...

2019-11-16 21:54:54 264

原创 再来看看Java8的新特征——lambda表达式

什么是lambda表达式?可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。比如说new一个Thread的传统写法如下Thread t = new Thread(new Runnable() { public void run(){ System.out.println("Hello wo...

2019-11-10 19:58:17 135

原创 【Java杂货铺】用Security做权限极简入门

原来大多数单体项目都是用的shiro,随着分布式的逐渐普及以及与Spring的天生自然的结合。Spring Security安全框架越受大家的青睐。本文会教你用SpringSecurity设计单项目的权限,关于如何做分布式的权限,后续会跟进。为什么选择SpringSecurity?现如今,在JavaWeb的世界里Spring可以说是一统江湖,随着微服务的到来,SpringCloud可以说是...

2019-11-10 11:54:30 433

oracle可视化工具

oracle可视化工具,亲测,可用。

2018-09-07

python-3.7.0-amd64

python-3.7.0-amd64,用于python安装环境,请注意这是python3、、、64位的。

2018-06-28

chromedriver

chromedriver。因为只有安装 ChromeDriver ,才能驱动 Chrome 浏览器完成相应的操作。

2018-06-28

redis_windows

redis windowsX64。打开就可以用。REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

2018-04-27

空空如也

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

TA关注的人

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