自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通过 Redis Data Reveal(rdr)分析redis中每个key所占的内存

通过Redis Data Reveal(rdr)分析redis中每个key所占的内存本人使用的是mac 所以就使用mac来讲下大概怎么操作,先下载redis备份文件,我使用的是阿里云的redis点击备份下载生成:hins15610081_data_20201021223723.rdb 文件(以rdb结尾的文件)第一步:进入rdr 下载地址 :https://github.com/xueqiu/rdr点击下载 第二个,会下载一个名为rdr-darwin 可执行文件第二步: 进...

2020-10-22 15:27:11 579

原创 正则表达式学习

1 匹配替换 一 比如手机号脱敏 18987667854 ---》1898***7854public static void main(String[] args){ String phone = "18999889999"; System.out.print(phone.replaceAll("(\\d{3})(\\d{4})(\\d{4...

2020-03-18 21:32:24 366

原创 linux jvm 基础相关命令

1 查询进程id ps -ef | grep xxx 例子: ps -ef | grep java2 查询默认jvm 配置参数java -XX:+PrintCommandLineFlags -version3 查询项目中非默认jvm 配置 sudo jmap -heap [pid]结果如图:4查出某个进程中运行的所有线程 sudo ...

2020-03-04 00:06:27 710

原创 linux 安装jdk

win和linux jdk 包:https://pan.baidu.com/s/1WEjZBYpKeWuDyxO4Aq_eSw找到目前jdk所在的位置1 将jdk复制到需要安装的文件夹:cp jdk-8u144-linux-x64.tar.gz /usr/local/jdk2 解压jdk当前文件夹:tar -zxvf jdk-8u144-linux-x64.tar.gz3 配...

2019-12-24 18:44:23 165

原创 linux 下安装运行redis

1 首先下载redis到 /opt文件夹 wget http://download.redis.io/releases/redis-5.0.4.tar.gz2 下载完成之后进行解压: tar xzvf redis-5.0.4.tar.gz3 解压完成之后 执行make 编译redis执行的过程中如果出现这个错说明linux没有安装c++或者版本低,...

2019-10-18 01:10:19 341

原创 spring 中@Autowired源码解析

使用过@Autowired的都应该知道,这个注解是手动注入依赖对象的,并且先通过bean类型去查找然后再根据属性名去查找准备4个类:1 Dao 接口2 IndexDao 测试类3 IndexDao2 实现了Dao接口4 IndexDao3类实现了Dao接口public class IndexDao { @Autowire Dao dao;}这样spr...

2019-10-10 02:34:33 975

原创 Function 按某个字段排序

@Setter@Getterpublic class TestPoiDTOimplements Serializable { private String name; private String type; private String code; private Double distance;}List<TestPoiDTO>...

2019-09-25 14:08:23 151

原创 spring boot 与mybatis整合之解析xml

spring boot 目前是比较火热的项目,比起spring mvc 去除了各种繁琐的xml配置,从而结束xml的配置时代。今天我们就来讲讲spring boot 加载mybatis的xml的一个过程:mybatis也是牛,为了和spring整合特地写了一个jar<dependency> <groupId>org.mybatis</grou...

2019-09-24 01:50:20 1067

原创 Spring中bean的AutowireMode(自动装配模型)和自动装配技术

spring注入方式有两种: 1 通过set方法 2 通过构造函数(如果有多个构造函数会选择参数多的构造方法)自动装配技术(手动装配):@Resource: 默认是通过name来查找注入值,如果不存在就报错@Autowired 通过类型查找(类型),然后再通过name以上两种通过反射,然后设置值AutowireMode(自动装配模型):在spring中有四种模式分别是:...

2019-09-12 01:05:19 6281

原创 面试算法题

1 /* * * [1,2,3,-2,-4,5,3,-2,4,1,-5,3]数组排序 * 输出结果[1,2,3,5,3,4,1,3,-2,-4,-2,-5] * 要求: *1.正数在左,负数在右, *2.相对顺序不变, *3.空间复杂度O(1) * * 两种思路第二种好: 仔细看题,反方向考虑,既然小...

2019-09-08 01:27:38 166

原创 mysql 简单的存储过程批量插入数据

一个简单的批量插入:记录学习下//创建过程CREATE PROCEDURE test1()begin//定义变量,并且赋默认值DECLARE i int DEFAULT 1;//循环语句WHILE i<10000 DO//数据插入insert INTO test (name,age,height) VALUES(i,i,i);set i=i+1;end W...

2019-08-28 23:46:24 2597

原创 java 线程池学习

聊到线程池相信大家应该都听过,其实也不排除很多程序员工作了好几年后没用过线程池,这个现象不少见。聊点题外话,IT行业目前还是很火,形形色色的公司都有,所以就有了形形色色的程序员,外包公司慎入!慎入!慎入!好了言归正传.线程池地方好处: 线程使应用能够充分合理的协调利用CPU,内存,网络,I/O等系统资源。创建线程需要开辟虚拟机栈,本地方法栈,程序计数器等私有的内存空间。...

2019-08-28 00:27:53 196

原创 AQS: ReentrantLock之加锁

多线程开发的场景下我们不可避免的会用到锁,那么java中也有各种锁,我们应该怎么使用呢?以及它的原理?首先synchronized关键字相信大家是不会陌生的,这个关键字要理解其原理的话就涉及到了jvm了,并且jdk现在也对它做了很大的优化,比如: 偏向锁,轻量锁,重量锁。。膨胀,撤销等等,这篇文章目前就不过多作介绍。其实如果我们仔细想想,我们为什么要使用ReentrantLock,直接使用...

2019-07-26 02:27:01 253

原创 本地连接linux数据库无法连接问题

可能的原因:1、linux防火墙未加3306端口,或者服务器是否堆在开通3306端口2、关闭firewalld防火墙:systemctl stop firewalld,systemctl disable firewalld3、服务器上登录mysql,查看是否有地址限制,(这个的原因可能性很大)use mysql;select host,user from user;gran...

2019-07-14 10:56:55 3423

原创 springboot自定义日志类型并且打印mybatis的sql语句

首先呢springboot 使用的是 logback做为默认的日志记录方式,但是如果我想用log4j记录日志怎么办呢第一步:将logback依赖排除,因为springboot-starter-web 会自动依赖logback 包 <dependency> <groupId>org.springframework.boot&lt...

2019-07-14 02:48:02 1124

原创 linux 用户无法登陆或者忘记密码

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线...

2019-06-25 22:25:07 261

原创 linux 安装elasticsearch遇到的坑

linux 安装es 遇到的坑 1 不能使用root用户运行 ./elasticsearch 需要切换至 普通用户 如果文件是root权限 那就更改文件权限 chown -R 普通用户 文件名/文件夹名 2 项目启动后出现 : [1]: max virtual memory areas vm.max_map_count [160000] is too l...

2019-05-30 16:51:48 721

转载 Redis 中jedisPool 连接配置

配置参数解析maxTotal 资源池中最大连接数 默认值8 建议值maxIdle 资源池允许最大空闲的连接数 默认值8 建议值minIdle 资源池确保最少空闲的连接数 默认值0 建议值blockWhenExhausted 当资源池用尽后,调用者是否要等待。只有当为true时,下面的maxWaitMillis才会生效 默认值true 建议使用默认值maxWaitMillis 当...

2019-05-07 11:06:25 2536

原创 springboot中 redisTemplate批量插入/读取hash数据

因为项目上需要用到redis缓存数据,并且量很大,但是频繁的单个获取或者插入非常消耗redis的性能,所以考虑是用hash结构的数据来做,并且使用批量的方式.使用hash的优点: 1 数据可以类似于组的方式存储起来,并且也可以通过数据的唯一key值获取数据,这样获取同一类型的数据(组)和单个数据都是 非常方便的 2 适合存储对象 3 使用批量存储快项目中...

2019-05-06 15:26:25 25520 2

原创 springboot mysql或者sqlserver逆向生成 mapper等文件

配置文件:一下是文件内容:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybat...

2019-05-05 11:48:12 1191

转载 RabbitMQ管理页面各种属性详解

转载:https://www.jianshu.com/p/5413766fa9c51 简介rabbitmq-management是RabbitMq web管理端,用的是erlang的cowboy框架进行开发。web页面包括Overview(概述)、Connections(连接)、Channels(通道)、Exchanges(交换器)、Queues(队列)、Admin(用户管理)。2 O...

2019-04-25 10:29:47 40601 5

原创 Correct the classpath of your application so that it contains a single, compatible version of xxxxxx

springboot 集成es是出现这个错误经过排查发现是因为两者的版本不兼容springboot版本<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId&gt...

2019-04-23 11:37:54 20339 1

原创 win10安装mysql 遇到的问题

首先从官网下载了mysql的zip包,然后解压到本地其中my.ini是我自己添加的,因为解压安装包后并没有这个文件里面的内容我是这么写的[mysqld]#设置3306端口port = 3306# 设置mysql的安装目录basedir=D:\mysql\mysql-8.0.14-winx64datadir=D:\mysql\mysql-8.0.14-winx64\dat...

2019-01-23 14:59:19 4308

原创 intellij idea tomcat 控制台日志乱码

只需要找到idea的然后打开问价增加:-Dfile.encoding=UTF-8 然后重启intellij idea 就行但是这个问题好了之后又出现了一个问题 那就是System.out.println("测试进入");这个在控制台输出的时候会乱码于是在idea 里 打开Tomcat 配置 在VM options 加入 -Dfile.encoding=...

2019-01-22 16:00:32 5736 2

原创 try,catch,finally的执行顺序问题

大家面试的时候想必会遇到这种面试题,要我们输出结果。。。其实在实际的业务中呢一般都是用finally来关闭流的,很少做其它业务操作,所以呢大家也就容易忽视掉这个问题首先在finally和try中对数据的操作时数据分为 基本数据类型和引用数据类型,他们存放的地方也不一样,一个是栈区另一个是在堆区。首先我们对基本数据类型的结果进行分析:1 finally 中没有returnpub...

2019-01-17 15:24:11 10488 5

原创 spring容器中类的初始化和实例化时机

这边文章介绍了类的加载等相关内容,写的不错https://blog.csdn.net/justloveyou_/article/details/72466105说的spring容器中bean的初始化和实例化也不得不说类的加载机制。上面的链接也很好的说了这一过程。先抽出一部分要点:类加载->连接(验证,准备,解析)->初始化->使用->销毁其中类加载又...

2019-01-17 00:30:30 4434

原创 Lombok @Data ,@Setter ,@Getter

lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。Lombok 注解在线帮助文档:http://projectlombok.org/features/index.下面介绍几个我常用的 lombok 注解:@Data:注解在类上;提供类所有属性的 getting 和 setting 方法...

2019-01-16 14:06:20 16439 6

原创 mysql exist和in的区别

首先理解mysql中sql语句如果有 exist和in 是怎么去执行的先给个结论后面再去慢慢解释:exist适合 子查询中表数据大于外查询表中数据的业务场景in:适合外部表数据大于子查询的表数据的业务场景  in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exis...

2019-01-07 02:17:08 32559 2

原创 redis击穿,穿透,雪崩以及解决方案

1 击穿: 指的是单个key在缓存中查不到,去数据库查询,这样如果数据量不大或者并发不大的话是没有什么问题的。 如果数据库数据量大并且是高并发的情况下那么就可能会造成数据库压力过大而崩溃注意: 这里指的是单个key发生高并发!!!解决方案: 1) 通过synchronized+双重检查机制:某个key只让一个线程查询,阻塞其它线程 在同步块中,继续判断检查,保证不...

2019-01-05 23:31:24 75114 6

原创 Timer和TimerTask

package 线程;import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class ThreadRunTest implements Runnable{ @Override public void run() { System.out.prin...

2019-01-05 18:46:48 1129

转载 Java GC如何判断对象是否为垃圾

转载自:https://www.cnblogs.com/hzzjj/p/6268432.htmlhttps://blog.csdn.net/qq_33296156/article/details/82587239查找内存中不再使用的对象 引用计数法  引用计数法就是如果一个对象没有被任何引用指向,则可视之为垃圾。这种方法的缺点就是不能检测到环的存在。  2.根搜索算...

2019-01-04 01:14:01 536

转载 JVM架构和GC垃圾回收机制详解

转载自:https://blog.csdn.net/aijiudu/article/details/72991993学习:https://blog.csdn.net/bruce128/article/details/79357870JVM架构图分析下图:参考网络+书籍,如有侵权请见谅 (想了解Hadoop内存溢出请看: Hadoop内存溢出(OOM)分类、参数调优化)JVM被分...

2019-01-04 01:07:30 194

原创 mysql 锁表的情况

mysql其实在我们使用的时候比较容易造成表被锁的情况,例如以下的几种方式目前有表 test , 字段分别有 id,name,ageshow full PROCESSLIST 查询表的执行情况1 查询时 mysql的innodb 支持for update 行级锁select * from test where name='行锁' for update; 如果 nam...

2019-01-04 00:18:29 3858

原创 查询mysql某个库中 各个表的行数

select table_name,table_rows from information_schema.tables  where table_schema='数据库名' order by table_rows desc;

2019-01-02 14:46:14 1023

原创 mysql索引失效的情况及使用

.索引失效的几种情况  1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)  要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引  2.对于多列索引,不是使用的第一部分,则不会使用索引(靠左原则)  3.like查询以%开头的列索引会失效  4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引  5...

2018-12-28 01:07:36 2591

原创 List去重根据对象某个属性或者对象(比如:存放的是String)

非自定义对象方式1,2利用Set 不允许重复的值进行去重--- TreeSet其实也是可以的 只是会重新排序方式3方式一,利用HashSet不能添加重复数据的特性 由于HashSet不能保证添加顺序,所以只能作为判断条件:private static void removeDuplicate(List<String> list) { HashSet<St...

2018-12-28 00:22:06 3370

转载 Java中的CAS实现原理

https://blog.csdn.net/v123411739/article/details/79561458一、什么是CAS?    在计算机科学中,比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令。 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值。 这是作为单个原子操作完成的。 原子性保证新值基于最新信息计算...

2018-12-23 23:48:40 1325

原创 AtomicLong(CAS)和LongAdder 并发时效率

java.util.concurrent下提供了很多多线程的类,可以满足我们在多线程/高并发下的各种业务下面简单比较下AtomicLong和LongAdder 并发时效率这两个类位于java.util.concurrent.atomic上代码:import java.util.*;import java.util.concurrent.ConcurrentHashMap;im...

2018-12-23 01:43:08 619

转载 转:hashMap1.8详解

原链接:https://blog.csdn.net/v123411739/article/details/78996181概述JDK 1.8对HashMap进行了比较大的优化,底层实现由之前的“数组+链表”改为“数组+链表+红黑树”,本文就HashMap的几个常用的重要方法和JDK 1.8之前的死循环问题展开学习讨论。JDK 1.8的HashMap的数据结构如下图所示,当链表节点较少时仍然是...

2018-12-17 23:11:29 529

转载 转载:内存可见性和原子性:Synchronized和Volatile的比较

原文:https://blog.csdn.net/guyuealian/article/details/52525724     在说明Java多线程内存可见性之前,先来简单了解一下Java内存模型。     (1)Java所有变量都存储在主内存中     (2)每个线程都有自己独立的工作内存,里面保存该线程的使用到的变量副本(该副本就是主内存中该变量的一份拷贝)   (1)线程对共享...

2018-12-13 00:11:53 266

2017全国地铁信息表

2017年包含全国地铁信息,后面会一直迭代更新  

2018-12-04

jdk1.7 64位下载安装包

jdk1.7 64位下载安装包

2018-08-31

微信支付工具和请求参数等

微信支付工具和请求参数等,微信支付工具和请求参数等

2018-07-04

支付宝,微信加密,数据转换工具类

支付宝/微信支付加密,验签,数据转换工具类,包含了微信xml,map互转等

2018-06-28

空空如也

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

TA关注的人

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