- 博客(215)
- 资源 (27)
- 问答 (11)
- 收藏
- 关注

原创 【MySQL】事务和事务引发的问题
说起事务,肯定能够想到这样一句话,这个事情要么不做,要么做完;或者是好兄弟不求同年同月同日生,但求同年同月同日死。有点过分,但是是这个理儿。四大特性我们都知道,提到事务,就不能不提事务的四大特性,ACID,即原子性,一致性,隔离性,持久性。原子性(Atom):事务的一组操作是原子的不可再分割的,这组操作要么同时完成要么同时不完成。 一致性(Consistency): ...
2018-08-25 10:54:25
8092
4

原创 【redis】内存回收机制
在redis4.0的配置文件中有这么一段被注释了的解释:这个里面讲的是redis的内存回收配置,其中有这么几种:volatile-lru -> 根据LRU算法删除设置了超时属性(expire)的键,直到腾出足够空间为止。如果没有可删除的键对象,回退到noeviction策略。allkeys-lru -> 根据LRU算法删除键,不管数据有没有设置超时属性,直到腾出足够空间为...
2018-07-29 10:10:35
8495
4

原创 【PageHelper】实现拦截pageNum和pageSize
我们在使用pageHelper的时候,总是需要往后端传pageNum和pageSize,以便我们在后面做分页处理,但是我们在controller中也需要在方法参数中接收并带到我们的数据查询层,中间基本对于这两个变量没有任何操作,这样做是在的很麻烦。今天我们写一个拦截,让这两个变量可以直接从请求中直接到我们的查询层,跳过从controller层到service层的艰辛。一、构造基本类...
2018-05-31 16:38:53
18223
62

原创 在java重新认识TryCatch
敲过代码的同志们都知道,在程序中处理异常我们常用Try Catch结构的代码来接收,处理异常,那么我们是否真的已经了解了try catch了呢?一、问题的提出 在去面试的时候面试官曾经问过我这样的问题,如果我在try的方法体中写了一个return,在catch中写了一个return,在finaly中也写了一个return,问如果没有异常是哪个return触发
2017-07-16 21:56:00
611
63

原创 面向硬件编程的一些思考
最近小编这几天弄了弄硬件的编程,感觉很有趣,同时跟纯软件编程肯定是有很多区别的,所以在此和大家说道说道。一、硬件编程 其实说道硬件编程,大家肯定乍一听感觉很难,很高大上,但是我想说的是除了需要了解一些硬件编程中对于各种机器工作状态的理解之外,剩下的就真没有什么了,基本都是逻辑and逻辑and实际,说白了就是看文档,理清楚逻辑再加上一些根据实际状况的调试就可以很
2017-05-11 14:24:29
15223
32
原创 【MySQL】Mysql设计与开发规范-修订版
由于项目组最近需要数据库设计规范1.命名规范【强制】库的名称必须控制在32个字符以内,相关模块的表名与表名之间尽量体现join的关系,如 im_area_group 表和 im_area_group_city 表。 【强制】一般分库名称命名格式是库通配名_编号,编号从0开始递增,比如wenda_001以时间进行分库的名称格式是“库通配名_时间”。 【强制】创建数据库时必须显式指定字符集,并且字符集只能是utf8或者utf8mb4。 【强制】表名、字段名必须使用小写字母或数字 , 禁止出现数
2021-02-22 11:33:19
242
3
原创 从爬虫中我们能学习到什么?
前段时间,帮公司搞了一下爬虫,爬取了一些数据给公司做业务分析用,有点小小的思考,在这里分享给大家!注:本文涉及到的爬虫皆为java爬虫设计,但是关于爬虫和防爬的策略都是共通的。爬虫这个东西,说起来可能有一部分人听着就烦,还有一部分人听着眼前一亮,这是为啥呢?我们都知道,技术是无罪的,有过的是使用技术的人,爬虫从最开的发展出来到今天也是走过了不少历程了,在我眼中爬虫有下面这几个作用: 1、爬取别人的数据,为自己公司决策和其他方面做参考。 2、爬取自己的数...
2020-06-15 15:28:18
1094
2
原创 【LeetCode】最长回文子串
题目要求:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring网络上有了好几种解法,什么倒排的二维数组,动态规划,马拉车等,我用的是比较简单的假..
2020-06-02 21:30:31
331
原创 【java】使用注解加ASPECT实现拦截方法打印方法日志
为了熟悉AOP中的ASPECTJ的使用,为了方便我们在写数据搬运型代码时候观测的方便,自己学习并定义了一组切面方法和注解,来实现这个功能,啥都不说了,先上代码:首先是注解定义:import java.lang.annotation.*;/** * @author wangxiao * @date 2020-05-26 10:38 */@Retention(RetentionPolicy.RUNTIME)@Target({ ElementType.METHOD })@...
2020-06-01 22:58:29
1882
原创 【工具推荐】SSH客户端工具推荐
实在是很想写一篇关于SSH工具的吐槽和推荐,于是乎在笔者使用了各种平台以及经历了各种困难之后,终于整理出来了各平台笔者用过的,或者见过的一些工具汇总,都是开源免费的,希望可以给各位同学有所帮助!!一、Windows 想来占有量最大的操作系统,得非莫属了吧,相信Windows系统肯定是陪伴了很多小伙伴学习工作很长时间的系统了,不过笔者之所以会写这篇文章,也是由于...
2020-02-17 18:16:43
22281
3
原创 【LeetCode】两数相加
题目要求: @lc app=leetcode.cn id=2 lang=java [2] 两数相加 https://leetcode-cn.com/problems/add-two-numbers/description/ algorithms Medium (35.40%) Likes: 2913 Dislikes: 0 Total Acc...
2019-09-26 16:30:40
294
原创 【java】对list集合进行去重 传统方式 VS Lambda
说道集合的去重,我们就肯定能想到唯一元素集合set,还有map中的key。那么我们传统的去重的方式肯定是要选择set或者是map来实现了,另外在对实体对象类型进行去重的时候,我们可能会指定实体中的一个字段,这种情况也是属于多数的,那么我们要怎么实现呢?一、传统map实现 首先我们来看map实现,由于list内对象是不固定的,所以我这里写了一个通用的,按照id去...
2019-08-05 17:45:10
1948
3
原创 【java】从Map中模糊匹配key值
如果我们想要从一个map集合中,模糊筛选出我们想要的key的集合应该如何处理呢?下面一个小例子解决此问题,但是性能上有待提高:核心代码:/** * 从map中查询想要的map项,根据key */public static Map<String, Object> parseMapForFilter(Map<String, Object> map,String ...
2019-05-10 16:55:21
18660
2
原创 【java】List分割工具
我们在使用mybatis批量插入数据库的时候,在数据量过大的时候,肯定碰到过一个错误,详见另外一个老兄的博客https://blog.csdn.net/qq_36773257/article/details/79895819 在mybatis中使用foreach拼接sql语句,很常见了,在这里就不多提了,如果遇到了这种错误,要怎么办呢?一种解决方案就是提高数据库设置的sql语...
2019-04-16 14:14:18
2286
2
原创 【SpringBoot】给redis配置String序列化器,防止key变为二进制
我们在springboot中使用redis的时候,如果使用了springboot自带的redis管理,没有进行特殊配置的话,会出现一种情况,就是我们set到redis中的值,所有的key值我们获取到的,或者通过工具看到的,都是一堆乱码,根本无法识别,其原因,是因为,springboot默认给redis使用了java自带的jdk序列化器(JdkSerializationRedisSerializ...
2019-03-19 22:37:42
3977
6
原创 【SpringBoot】web加载地址默认跳转设置
我们在设置完springboot项目之后,需要让他默认跳转一个地址,需要怎么做呢?答案很是简单,可以通过springboot-web的configuration配置,把默认的'/' 路径的路由,转换为你想要指定的controller的view跳转地址就行了。 首先我们需要先构造一个主页的controller访问方法:@RequestMapping("/ind...
2019-03-19 22:21:38
3834
2
原创 【java】生成二维码的util
这两天接到了一个生成二维码的需求,和大家分享一下用工具生成二维码的快感:1、首先我们需要在maven中引入依赖:<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0&...
2019-01-20 22:06:57
739
2
原创 【redis】集群伸缩(添加删除节点)
注:本文知识点全部来自于《redis开发与运维》这本书在加上博主本人对于redis的理解构成 一、集群伸缩原理 Redis集群提供了灵活的节点扩容和收缩方案。在不影响集群对外服务的情况下,可以为集群添加节点进行扩容也可以下线部分节点进行缩容:我们都指导,这样的每一个节点上面都分配了我们的16384槽中的几个,以及对应槽下面的数据。所以我们在伸缩节点的时候,实...
2018-09-16 11:26:45
3776
1
原创 【Java】内存问题——内存溢出
模拟内存溢出 我们通过自己写代码,模拟一下两种内存溢出的情况,一种是堆内存溢出,一种是栈内存溢出。堆内存溢出代码:public class Heap{ public static void main(String[] args) { ArrayList list=new ArrayList(); while(true...
2018-08-31 20:42:16
899
1
原创 【Java】内存问题——内存泄漏
分类常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生...
2018-08-30 21:03:28
386
3
原创 【nginx】CentOs7下安装nginx以及配置负载均衡
首先我们会去官网下载最新的nginx的tar.gz的包:http://nginx.org/en/download.html我们在官网会看到有如下的三个部分的安装包可以提供下载: 其中mainline version就是我们的主线版本,也就是刚刚开发上线完成的版本,可能存在bug或者未知的使用漏洞,所以不推荐安装。 Stable version,就是稳定版的意...
2018-08-12 10:50:07
2520
原创 【MySQL】表锁和行锁
一、表锁 特点:偏向MyISAM存储引擎,开销小,加锁快;无死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 我们在编辑表,或者执行修改表的事情了语句的时候,一般都会给表加上表锁,可以避免一些不同步的事情出现,表锁分为两种,一种是读锁,一种是写锁。 我们可以手动给表加上这两种锁,语句是:lock table 表名 read(wr...
2018-08-01 10:13:07
14924
原创 【MySQL】索引失效以及explain应对
我们都知道在数据表中建立索引是可以增加查询的效率的,但是不知道同志们有没有注意过索引失效的情况,就是你明明建立了索引,但是却和没有建立索引的时候查询的时间是一样的。 前提 索引是什么? MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。 使用Navicat...
2018-08-01 00:31:40
4795
原创 【MySQL】主从复制-从机Slave_SQL_Running: No
问题现象: 我们可以明显的发现,我们的sql线程已经挂掉了。 导致这个问题的原因是因为由于数据的不同步,导致我们在执行主从同步的时候出现了执行不了的sql,导致从机事务回滚了,所以sql的进程就被关闭了,常见的这个问题的出现方式:在从机上进行了写操作(非双机热备情况下)。 slave机器重启,事务回滚。 各种原因导致的数据不同步。解决办法1:mysql&g...
2018-07-31 16:47:51
5785
4
原创 【MySQL】MySQL From主从复制To双机热备
安装完mysql之后,有了新的需求,就是需要有一台服务器用来做数据备份使用,以达到容灾的目的,这样需要怎么做呢?还有我们需要进行多点访问来减小单点压力的时候又要怎么办呢?这个时候我们就引入了主从复制和双机热备的概念了。 其实从实现上来讲,双机热备就是我们做了两个机器的主从互备。下面我们从原理上开始说,这次试用的mysql版本依旧是5.7.23,在网上看配置方法后,...
2018-07-31 16:33:39
2251
3
原创 【MySQL】解除mysql5.7.X版本弱密码限制
mysql数据库从5.7的版本开始对密码进行了严格的限制,因为他默认安装了一个validate_password的插件,我们在命令行中输入mysql> show plugins;即可看到,一般在最下方:状态为AVTIVE,说明为启用状态。我们可以看一下他的验证规则,在mysql命令中中输入:mysql> SHOW VARIABLES LIKE...
2018-07-31 11:44:22
5021
4
原创 【MySQL】initialize specified but the data directory has files in it. Aborting
我们在安装mysql的时候可能会遇到这个问题:是不是执行了这个命令呢?mysqld --initialize --user=mysql 报这个错误的原因是因为你的mysql数据库已经进行初始化了,所以不能用这种方式再进行初始化用户了,因为mysql在初始化的时候会自动创建一个root用户的。这个时候我们应该怎么办呢?1、找到数据库目录我们可以在mysql...
2018-07-29 15:56:54
84471
16
原创 CentOs7下安装mysql5.7.23(rpm安装)
准备 一台装有centos7.3的电脑(或虚拟机),mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar mysql的rpm安装集合包下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads注意这样选择,可以获得centos支持的版本。 一、安装环境 ...
2018-07-29 15:42:46
17186
15
原创 【redis】cluster集群的故障转移机制实验
曾经只是知道redis可以故障转移,但是不知道怎么转移,这次来见识一下: 前提 搭建了一个如下图的三主三从的集群。 并且集群处于运行中 一、故障模拟 我们首先停止一个主服务,看有什么变化:我们停止了7002主服务器:马上会在他的从机7004服务器上看到这些然后其他主服务器看到这些:这里表示有一个节点d...
2018-07-28 21:24:01
5632
5
原创 CentOs7 安装redis4.0 遇到的坑
这次尝试了一下安装和使用redis4,结果遇到了不少的坑,和大家分享一下。 一、CentOs7连接网络 由于是新安装的centos7,所以什么都没有配置,也没有连接过网络,使用ip addr查看,只有一个网卡开启了,就是127.0.0.1的网卡,然后另外一个网卡的网络地址为空的,这时我们需要去开启网络连接。 首先去网络配置文件所在的目录:cd ...
2018-07-28 16:25:17
789
4
原创 【java】初识注解
注解这个东西,只要是一个java的开放人员都不会陌生,但是我们用了那么多的注解,我们的注解是怎样为我们工作的呢?通过前段时间的学习,我对注解有了一点新的理解。 一、什么是注解 注解在我们通俗的看来,就是一个对于Annotation接口的一个实现,他和类还有接口是处于同一个声明和使用级别的,都继承了Object基类,并且都有.class属性。 ...
2018-07-22 21:38:33
190
6
原创 YAML常用语法
前几天,小编学习了springboot和springcloud中的一些配,其中有很多的博客和书籍都使用的yml文件来作为项目配置文件编写的,小编在github上创建的博客,hexo框架也是用yml编写的,所以小编觉得很有必要学习和总结一下yaml类型文件的格式和写法,所以出此文。一、基本语法 yaml类型的文件,都是以k-v形式存在的,并且使用换行和空格来表示键值和属...
2018-07-15 20:34:57
2008
2
原创 java.util.ConcurrentModificationException
有这么一段代码:for (QuestionMainModel questionMainModel : questionMainModels) { if (detailEntity.getQuestionMainId().equals(questionMainModel.getId())) { questionMainModel.setScore(getItemScor...
2018-06-29 23:12:45
174
5
原创 【GitHub】如何删除存在的项目repository
首先进入你的repository的主页面:然后点击上面的settings设置页面:然后找到最下面的DangerZone:点击Delete this repository按钮:出现警告的页面,并且需要填写理由并同意consequence,然后就能删除你的repository了。...
2018-06-24 23:01:37
1259
9
原创 创建GitHub博客主页(仓库主页)绑定域名问题There isn't a GitHub Pages site here
出现这个404 的错误,一般表示你的域名已经能够解析到了XXX.github.io,但是你的github还需要进一步配置。首先,我们需要先进入到你的项目中去:点击settings进行我们的仓库配置,之后找到GitHubPages进行页面的配置:上图中的 domain就是我们需要设置域名的地方,我们输入完成我们的域名之后,进行绑定(点击Save)就可以了。这个时候我们会在我们的仓库目录下面看到一个名...
2018-06-17 20:39:13
23363
19
原创 如何学习java多线程和jvm虚拟机
首先,在网上搜索了几篇关于如何学习jvm和多线程的文章:jvm:https://www.douban.com/doulist/2545443/多线程:https://www.zhihu.com/question/19884663
2018-06-10 21:46:03
1245
8
原创 【mysql】Centos7安装mysql8.0删除MariaDB
在安装mysql8.0并且使用最新版的centos7的时候出现了不少坑,这个是其中之一。 由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。使用rpm命令查找mariadb:rpm -pa | grep mariadb 可能会出现:m...
2018-05-25 19:46:49
3336
17
VS插件ClaudiaIDE
2017-02-12
EditPlus文本编辑器
2016-06-09
实体类生成工具
2016-03-27
Bootice 1.3.2
2015-10-31
EasyBCD2.2
2015-10-31
EasyImageX_v1.59
2015-09-19
html页面的排列组合算法怎么做?最后需要显示数据到table上
2017-12-25
mybatis中对于子查询列的排序问题
2017-12-18
C#编程如何实现接收网络中的UDP广播?
2017-05-03
redis这个技术是怎么出现的,他的出现背景是什么?还有他的持久化原理是什么?
2017-04-09
jboss-eap7发布项目报错,求怎么解决
2017-03-13
jboss-eap的发布项目的问题,报了很多错误,不知道是什么原因。
2017-03-12
jboss6.2的配置文件和jboss7的配置文件有什么异同?
2017-03-08
jboss-EAP启动上下文的问题
2017-03-05
Nginx配置反向代理后加载页面没有css效果,js和图片怎么办?
2017-02-23
调用Ajax的时候返回的数据是json类型的,如何提取里面数据?
2016-11-13
如何才能用一个域名或者外网ip来访问一个多系统的网站应用
2016-10-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人