自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql 索引的原理、结构、使用,超干货

前言MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。本文主要从索引的原理、算法结构、各种索引存储类型进行介绍,及为什么选择B+Tree。数据结构索引的本质MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索

2021-04-06 12:02:44 326

原创 mysql 什么时候加锁呢

前言相信大家对mysql 语法有个简单的运用了,知道了事务特性ACID,知道事务隔离级别,知道MVVC,知道了索引结构。但是知道了这些应该还是不知道为什么查询这么慢,为什么产生了死锁,为什么索引没有起作用吧。介绍锁关于锁,其实有好多,不同存储引擎支持的锁还不一样。MyISAM:注:不支持事务操作、支持外键1)表级别:MySQL表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。什么意思呢,就是说对MyISAM表进行读操作

2021-03-29 00:04:30 4626 1

原创 泛型的高级运用,代码重构必须要了解的技巧

泛型的灵活运用,代码重构必须要了解的奇淫技巧前言泛型相信大家都不陌生,经常都会用到,像在一些集合类啊,一些开源框架啊,这种东西随处可见,如果不能好好理解的话,看起源码来也会增加了一点儿复杂度。泛型的好处,扩展性强,低耦合业务内容,大幅度的减少重复代码。本篇文章,基于对泛型有一定了解,想更进一步运用的朋友。泛型的运用场景一当我们写了一个采用泛型的类,但是怎么获取到这个类上的泛型呢,直接 run 一段简短的代码看下。/** * @author: wangqp * @create: 2020-

2020-11-19 14:29:09 473 2

原创 RocketMQ 一键部署能力,亲自搭建部署,超详细

RocketMQ 一键部署能力前言 RocketMQ 越来越流行,强大的消息堆积能力,消息并发能力。但是RocketMQ自带的东西比较多,涉及rmqnamesrv,rmqbroker,如果需要界面可视化展示的话,还需要部署console控制台。所以希望通过docker compose 服务编排的能力实现这个三个组件的一键部署能力。环境: 安装有docker 的服务器环境或者本机环境。一、docker-compose 文件这个文件是核心,靠docker c...

2020-11-16 17:10:09 1000

原创 借用 github action ,不用自己买服务器 ,香

香 – 不用自己买服务器,借用 github action前言一直想做个信息提醒自己的东西,因为平时自己可能初心或者有点儿忙。又要上班又要炒股又要买卖基金,下雨提醒带伞,又要关心女票,哎,生活不易啊。但是自己买云服务器,只是做个通知。。。这也太贵了,难道没有其它办法吗。最后果然被我找到办法了。介绍身为搬砖工,咱们肯定很熟悉 GitHub,但是咱们应该只是做下远程仓库或者看下别人优秀的代码。其实后面GitHub慢慢发展了很多东西,其中就引入了CI/CD 的流程,这样咱们可以利用它的一些特性白嫖一些

2020-11-12 17:10:25 1878

原创 Spring 循环依赖 - 揭开源码原来没那么神秘

Spring 循环依赖源码解析前言自己也经常看Spring源码,但是当初看的时候没有太过关注Spring 对于循环依赖这部分的解决方法,偶然看到网上几篇讲解的Spring 怎么解决循环依赖的解释,感觉自己还是没看太懂,所以自己动手探索下Spring 怎么解决的。问题首先我们需要知道什么叫做循环依赖,它是怎么产生的?其实产生的原因是怪我们太懒了,靠Spring做了很多事情,包括对象的创建,对象的注入(IOC,DI),以至于帮我们注入的时候,发现实例A需要引用对象B的实例,但是实例B里又引用对象A的实

2020-07-20 15:34:34 525 3

原创 linux 负载均衡 nginx反向代理 tomcat web服务器

我的实验环境:Ubuntu 14 64位tomcat 6 jdk1.7首先我们先介绍负载均衡:负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行。(百度百科)其实说白了就是均衡分发请求,减轻服务器的压力,让多个服务器同时按一定策略的处理用户请求。优点:提高服务器工作效率,减轻服务器压力。提高处理响应速度,分

2016-12-16 19:07:36 503

原创 面试,寻找最长的回文子串,典型动态规划

最长回文子串,典型动态规划问题这是 LeetCode 05. 最长回文子串 用动态规划的做法和讲解请实现个函数,给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思考回文串:具有左右对称的字符串那么是否可以认为这个字符串成立的前提是子字符串一定是回文的,题目是求最长,那么是否我们可以从已经成立的回文串中找到最

2020-11-16 15:59:52 133

原创 面试,求数组中哪两个数的和为指定值,时间复杂度 O(n)

LeetCode 01.两数之和LeetCode 01.两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]分析通常解法估计就是两个for循环,直到找到两个数和等于 target 的值;找到两个值的和等于目标值。但是这种解法的时间复杂就是 O(

2020-11-13 17:41:03 636

原创 进程间通信方式 -- 层层讲解

进程间通信下面的内容主要来自小林coding。每个进程的用户地址空间都是独立的,一般而言是不能互相访问的,但内核空间是每个进程都共享的,所以进程之间要通信必须通过内核。Linux 内核提供了不少进程间通信的机制,我们来一起瞧瞧有哪些?管道如果你学过 Linux 命令,那你肯定很熟悉「|」这个竖线。ps auxf | grep mysql上面命令行里的「|」竖线就是一个管道,它的功能是将前一个命令(ps auxf)的输出,作为后一个命令(grep mysql)的输入,从这功能描述,可以看出管

2020-11-04 14:11:29 1796

原创 Redis 操作多个数据库的配置用法

redis 默认有 0-16 号数据库,一般我们操作redis时,用的是 0号数据库,但是有时我们的项目想同时操作多个数据库,又不想每次访问其它库数据时select 切换数据库,这样太繁琐。因此我们需要配置多个jedis client,但是jedis是容易阻塞,效率不太好,所以我这边采用了 Lettuce client,它是 reactive 连接,效率比较高。import io...

2020-09-05 01:21:40 4226 2

原创 创建链表及逆序链表

创建链表及逆序链表前言最近在刷题,就自己操作了,顺便记录下来。代码直接上代码,分为创建链表和反转链表部分,欢迎大家一起讨论。package com.vic.algorithm;import lombok.Getter;import lombok.Setter;import org.omg.CORBA.NO_IMPLEMENT;/** * @description: 如何实现一个高效的单向链表逆序输出? * @author: wangqp * @create: 2020-06-18

2020-06-28 14:06:10 411

原创 RxJava 用法(一)

RxJava 用法(一)一、响应式编程库的选择我先后接触过 RxJava1.X ,RxJava2.X,Reactor,但是我最后选择了RxJava2.X。原因如下:1)RxJava1.X 虽然有很多公司已经在用了,但是已经很有年代了,而且内部东西太多,好多无用的东西,而且和RxJava2.X兼容度不高。2)Reactor 这个我接触比较的时间长些,因为它是spring 出的,并且比较新,...

2020-04-19 15:30:54 237

原创 运用java爬虫和python做词云图

前言:        最近有点时间,就写个东西玩玩,就是分析电影评论做成词云图。这次没有采用python去爬取电影评论,而是采用了java中的多线程和线程池去爬取电影评论,但是用评论做词云图使用python写的。如果不喜欢用java做爬虫的朋友,也可以换成用python语言写,过程不是很重要,看自己喜好。环境:        windows 10         jdk 1.7        py...

2018-05-24 12:54:01 1658

原创 win10 VMware 虚拟机 实现桥接模式 上网

前言:    可能很多朋友想用VMware在自己的windows系统上体验下其它操作系统或者运行某些只能在Linux上的软件。但是可能自己买阿里云或者腾讯云感觉划不来。下面我来简单的来告诉大家,运用VMware的桥接模式,可以让大家像拥有另外一台不同操作系统的电脑一样在局域网中。同样可以来上网,可以和局域网中的其他机器一样通信,甚至可以暴露ip与端口到公网中,这样其他机器或者网页等也能访问它。环境...

2018-04-15 18:44:56 76224 26

原创 git 的常用命令与用法,团队常用流程

请大家转载的话,请知乎我一声,并标明出处,谢谢。今天有点空,刚刚写完了,上一个博客,现在看看还是时间就谢谢一个关于git的用法的博客吧。我分了五个小点。请参考下面的例子,都是我亲测的。一、第一次下载git代码或者分支。    例如我们需要下载这个分支下的dev分支的代码。ssh://git@10.9.236.75:10022/zhenghx/chan-pc-web-base-mgmt.git我们可...

2018-04-03 17:09:58 303

原创 springmvc源码分析原理及简单实现

现在我主要分四步走。一、我们先来看下springmvc的配置与启动流程。这是spring与springmvc框架的web应用的web.xml简单配置。虽然这篇博客讲的是springmvc但是,它的启动流程还是离不开Spring的,所以我先简单提下Spring的启动流程,后期会写另一篇博客详细的说一说Spring的,请大家见谅。首先我们看到在这个web.xml中配置了<listener>...

2018-04-03 15:31:35 327

原创 ThreadLocalMap里弱引用

要回答ThreadLocalMap里弱引用,我们需要弄清者三个问题第一个问题,我们先来看看引用相关的。其实Java中一直有争论关于值传递与引用传递(就我看到的百度是这样的)。我们先来看看代码。public static void main(String[] args){ //测试引用传递 Map<String,String> a = new HashMap<>(); ...

2018-03-29 17:20:56 18947 15

原创 mysql 原理及配置优化

假设我们用文本存储的数据和数据库里一样的数据结构并且遵循三范式,那数据库相比文本存储有什么大的优势呢。 有了这个疑问后我们来简单探究下mysql数据库的原理,简单了解原理后我们在学习下配置的简单优化。 我们先看下mysql的结构图 1.最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类似于连接处理、授权认证、及相

2016-12-07 15:08:55 387

原创 ant 构建的依赖项目 kettle项目 源码导入eclipse

最近在研究kettle,这个是比较强大的ETL 工具。是用java写的,而且是开源的,有个可视化的配置窗口。然而kettle 使用ant 构建的(我们一般是用的是maven),并且是个子项目互相依赖的项目,所以写一篇我自己用eclipse运行kettle的经历。首先我们需要去官网上下载kettle桌面工具的压缩吧,直接解压就能用了,点击Spoon.bat 就可以运行了。但是我们需要注意版本,因为这个

2016-12-05 23:35:15 1596

原创 jvm与GC 基本 三

转载请注明出处,谢谢。通过GC使对象在各个内存区内迁移。GC的种类: Minor GC:新生代GC,指发生在新生代的垃圾收集动作,所有的Minor GC都会触发全世界的暂停(stop-the-world),停止应用程序的线程,不过这个过程非常短暂。 Major GC/Full GC:老年代GC,指发生在老年代的GC。GC触发条件:Eden区满了触发Minor GC,这时会把Eden区存活

2016-12-04 19:26:20 320

原创 jvm与GC 基本 二

jvm区域的基本结构JVM区域总体分两类:heap区和非heap区。 heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)(eden和survivor 存在于新生区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local

2016-12-04 18:01:24 314

原创 算法 蚂蚁 迷宫

自己写的,大家随便看看。 问题: 有个蚂蚁走进了如下二维数组的迷宫,1 是可以走的路线,0 是不可以走的路线,9 是奶酪。 判断蚂蚁是否可以走到奶酪哪里。如果能走到返回 1 ,如果不能返回 01,0,1,1,1,0,0,11,0,0,0,1,1,1,11,0,0,0,0,0,0,01,0,1,0,9,0,1,11,1,1,0,1,0,0,11,0,1,0,1,1,0,11,0,0,0

2016-11-28 18:37:04 1387 2

原创 jvm 基本结构 一

有什么错误欢迎指正这个是jvm的基本结构: 一、PC寄存器解释每个线程拥有一个PC寄存器在线程创建时 创建指向下一条指令的地址执行本地方法时,PC的值为undefined二、方法区解释保存装载的类信息(类加载的时候生成的类的信息,具体可以看反射原理) · 类型的常量池 · 字段,方法信息 · 方法字节码通常和永久区(Perm)关联在一起三、java堆解释和程

2016-11-28 16:14:25 385

原创 spring 和quartz 代码整合实例演示

注 :spring 和quartz 整合时,版本有点问题。 spring 3.1 以上 最好用 quartz 2.x 以上 spring 3.1 以下 最好用 quartz 1.x我的版本:spring 3 quartz 1.8 文件中注释很详细,是我自己看官方例子和百度的。 这是applicationContext.

2016-11-11 14:26:56 347

原创 hibernate 泛型简化Dao层

接口 BaseRepository 中有一些增删改查的方法。 相当于Dao层的接口了,但是是通过泛型和反射让所有Dao实现类共用这BaseRepository一个接口,不用再像以前一样一个Dao实现类一个接口。public class RepositorySupport<T> implements BaseRepository<T> { private SessionFactory se

2016-11-11 13:34:25 349

原创 struts防止表单重复提交

情况描述:你已经提交过了,然后点击刷新。表单会重复提交,它会把你 的请求在一次发到action处理。一、用重定向方式(redirect),防止表单重复提交。 只需要在struts.xml 里配置成这样:```二、用令牌方式。 原理:Struts会自动在form里 写一个 hidden的属性的input name=”token” value=”令牌值” 。令牌值

2016-11-10 21:53:02 256

转载 Ubuntu 目录结构

/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中/bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可/dev:存放l

2016-08-30 09:19:40 408

原创 window python3 安装pip和scrapy,lxml 过程和出错解决

如果需要转载请私信自己爬过的坑。。。。。 我的环境:win7 python :3.5一.先在cmd下 进入Python的安装目录。 例:C:\Users\asus>cd /d D:\Python\Python35-32 然后在安装目录下输入 easy_install pip如果提示 缺少 setuptool 模块,有的是自带的,没有的话,可以自行百度Google下载,然后放到P

2016-08-23 09:53:21 1046

原创 python3 爬虫 urlretrieve

网上的Python3 爬虫教程很少,自己就写了个小例子。import reimport urllib.request###result yes# version 3.5def Schedule(a,b,c): ''' a:已经下载的数据块 b:数据库块的大小 c:远程文件的大小 ''' per = 100.

2016-08-20 19:55:09 9234

原创 Java多线程爬虫和存储

import org.apache.http.HttpHeaders;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;i

2016-08-20 18:38:39 542

原创 注解注入annotation

注解注入annotation 注意重点内容 要想用annotation必须在applicationContext.xml中加入 命名空间<!-- 要想用注解注入 ,必须加入这三条 xmlns:context="http://www.springframework.org/schema/context" http://www.springframework.org/schema/

2016-06-20 17:12:59 350

原创 依赖注入setter,constructor

依赖注入setter这是两个要实例的类,要往person中注入多种属性,并配置applicationContext.xmlpublic class Student { public Student() { System.out.println("new Student"); } public void say() { System.out.pri

2016-06-20 17:03:27 341

原创 spring-ioc

实例化bean的三种方式:<!-- 默认的 把类添加到spring容器中 --> <bean id="helloWorld" class="com.example.vic.test_spring.ioc_di_setter_HelloWorld.HelloWorld"> <!-- 静态工厂 工厂方法是静态的

2016-06-20 16:51:28 203

空空如也

空空如也

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

TA关注的人

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