自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (2)
  • 收藏
  • 关注

原创 centos7搭建mysql主从复制

mysql主从复制修改mysql master的配置文件vim /etc/my.cnf#设置服务idserver-id=1#启动binlog日志log-bin=mysql-binbinlog-ignore-db=mysqlbinlog-do-db=msb#binlog的格式binlog_format=statement[client]default-character-set=utf8修改mysql salve的配置文件#设置服务idserver-id=1re

2020-06-20 16:24:41 218

转载 Java中Bitmap的实现

说bitmap之前,我们要明白数字在内存中的表示,如果说byte用8个二进制位表示,即可以表示个数,每个byte占8位,即每个byte占8行,在内存中这样形象的表示:而bitmap结构,充分利用了每一行所有的位数,它将每个位置作为一个数,那么一行就可以模拟表示出8个数。Bitmap介绍bitmap是很有用的结构。所谓的bitmap就是用一个bit位来标记某个元素,而数组下标是该元素。bitmap优势bitmap经常用在大数据的题中,比如10亿个int类型的数,如果用int数组存储的话,那么需要大

2020-05-10 05:44:24 643

原创 centos 7安装redis

yum install wget 安装wgetcd ~ 进入用户目录mkdir soft 创建soft目录cd soft 进入soft目录wget http://download.redis.io/releases/redis-5.0.5.tar.gz 下载redis压缩包tar xf redis-5.0.5.tar.gz 解压redis压缩包yum install gcc 安装g...

2020-01-28 18:19:32 127

原创 ThreadPoolExecutor源码解析

ThreadPoolExecutor源码解析1、常用变量的解释// 1. `ctl`,可以看做一个int类型的数字,高3位表示线程池状态,低29位表示worker数量private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));// 2. `COUNT_BITS`,`Integer.SIZE`为32,所以`CO...

2020-01-26 23:29:26 91

原创 多线程学习8之线程池(下)

Executors创建线程池的工厂类,有创建多种不同线程池的方法Executors.newSingleThreadExecutor这个方法创建一个单线程的线程池,单线程的线程池的好处是比直接创建的线程易于维护,并且功能更强Executors.newCachedThreadPool这是一个缓存线程池,没有核心线程,每个线程的失效时间为60秒,使用默认的工厂和默认的策略,创建方法如下...

2020-01-26 23:27:10 206

原创 多线程学习笔记7之线程池

Executors创建线程池的类,提供四种线程池:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程示例代码:public class CallableDemo { public static void main(String[] args) throws ExecutionException, I...

2020-01-25 16:31:08 137

原创 多线程学习笔记6之容器

Hashtable 同步表跟HashMap一样,不同的是Hashtable线程安全的,效率比较低,锁的整个表,只支持一个线程同时运行,一般使用它的替代者ConcurrentHashMapConcurrentHashMap同步的Hash表数据结构,替代Hashtable,效率比Hashtable高(线程数有关,线程数越多越有优势),下面是国外的一张比较Hashtable和ConcurrentH...

2020-01-22 19:19:25 145 1

原创 多线程学习笔记5之ThreadLocal和强 软 弱 虚引用

ThreadLocalThreadLocal中有一个Map,为每个线程维护一个副本,保证每个线程中的数据进行隔离,下面我们看一个小程序public class ThreadLocalDemo { static Person p = new Person(); public static void main(String[] args) { new Thre...

2020-01-21 18:15:18 266

原创 多线程学习4之阻塞、唤醒线程

LockSupport 阻塞、唤醒线程LockSupport类的park,unpark方法用来阻塞和唤醒线程,类似于wait、notify,下面以代码实例举例public class LockSupportDemo { public static void main(String[] args) { Thread t = new Thread(() -> {...

2020-01-20 15:10:46 155

原创 多线程学习笔记3之ReentrantLock

比较LongAdder、AtomicLong、synchronized(Long)效率public class AtomicVsSyncVsLongAdder { static long count2 = 0L; static AtomicLong count1 = new AtomicLong(0L); static LongAdder count3 = new Lon...

2020-01-19 00:49:42 99

原创 多线程学习笔记2-volatile

volatile关键字保证线程可见性public class VolatileDemo { /*volatile*/ boolean flag = true; public void m() { System.out.println("m start..."); while (flag) { //do nothin...

2020-01-18 14:22:56 94

原创 多线程学习之synchronized

synchronize 可重入锁public class ReentrantDemo { synchronized void m1(){ System.out.println("m1 start..."); try { TimeUnit.SECONDS.sleep(1); } catch (Interrupt...

2020-01-18 00:20:27 87

原创 CentOs7防火墙命令(持续添加中...)

查看开放的端口netstat -anp查看指定的端口是否开启firewall-cmd --query-port=666/tcp对外开放端口firewall-cmd --add-port=123/tcp --permanent移除指定端口firewall-cmd --remove-port=123/tcp --permanent刷新firewall-cmd --...

2020-01-13 22:53:56 71

原创 centos7 docker安装及docker常用命令使用

前置条件yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 设置阿里云的docker源yum makecache fast 设置最快的源...

2020-01-13 22:49:33 157

原创 JVM学习笔记(6)之字节码文件剖析2

上一篇字节码文件剖析完了常量池表,接下去我们剖析字节码整体结构的剩下的内容,如下图所示Java字节码整体结构剖析图access_flags(访问标志),类型是u2,说明长度占据2个字节,数量是1访问标志信息包括该Class文件是类还是接口,是否被定义成public,是否是abstract,如果是类,是否被声明成final。通过上面的源代码,我们知道该文件是类并且是public,下图是...

2019-11-07 19:49:34 98

原创 JVM学习笔记(5)之字节码文件剖析

使用javap -verbose命令分析一个字节码文件时,将会分析该字段的魔数、版本号、常量池、类信息、类的构造方法、类中的方法信息、类变量与成员变量等信息魔数:所有的.class字节码文件的前4个字节都是魔数,魔数值为固定值:0xCAFEBABE看一个简单的java文件MyTest1.java,如下:package com.zh.bytecode;/** * @a...

2019-11-06 23:11:05 89

原创 JVM学习笔记(4)之扩展类加载器

扩展类加载器加载目录打印扩展类加载器目录 System.out.println(System.getProperty("java.ext.dirs"));打印结果如下:D:\Java\jdk1.8.0_152\jre\lib\ext;C:\windows\Sun\Java\lib\ext那么接下来我要做的一个操作是让扩展类加载去加载我们自己定义的类,所以执行的时候手动的去改变加载类目录,...

2019-10-26 15:54:30 152

原创 JVM学习笔记(3.X)之类加载器命名空间补充

JVM学习笔记(3.X)之类加载器命名空间补充本篇是类加载器命名空间补充,只是记录一段奇怪的代码,以此来加深对命名空间的理解,下面贴下代码及结果MyPerson类package com.zh.classloader;/** * @author Jack * @version 1.0 * @date 2019/10/24 23:27 */public class MyPer...

2019-10-25 23:44:02 90

原创 JVM学习笔记(3)之命名空间

加载器命名空间什么是加载器命名空间每个类加载器都有自己的命名空间,命名空间由该加载器及所有父加载器所加载的类组成在同一个命名空间中不会出现类的完整名字(类的包名+类名)相同的两个类在不同的命名空间中,有可能会出现类的完整名字(类的包名+类名)相同的两个类代码示例1package com.zh.classloader;import java.io.ByteArrayO...

2019-10-22 15:10:01 113

原创 JVM学习笔记(2)之类加载器双亲委托机制实例

JVM学习笔记(2)之类加载器双亲委托机制实例1、什么是类加载器的双亲委托机制类的加载器分为三种,也可以自定义,分别为Bootstrap Class Loader(启动加载器)、Extensions Class Loader(扩展加载器)、Application Class Loader(系统(App)加载器)启动加载器:它用来加载Java的核心库(JAVA_HOME/jre/lib/...

2019-10-21 21:37:53 90

原创 JVM学习笔记(1)之ClassLoader

JVM学习笔记(1)之ClassLoader1.JVM简介JVM是伴随Java这门语言的诞生而存在的,Java的最大特点就是跨平台性,即我们常常说的一次编译,到处运行,这个特性其实就是JVM的功劳,JVM不仅仅是一个虚拟机,更是一种规范,所以任何符合JVM虚拟机规范的语言都可以跑在JVM中,包括Scala、Grooy、Kotlin等2.JVM、JRE、JDK之间的关系JDK:JDK(Ja...

2019-10-20 01:32:35 127

原创 2种MySQL实现层级关系的方法

背景:最近在开发中,需要查询数据的组织层级关系,故写下这篇博文分享给大家一起学习,这里只做下级往上查询,上级往下级同理1 .创建一个函数CREATE FUNCTION `getParentList` ( parentId INT ) RETURNS VARCHAR ( 1000 ) BEGIN DECLARE temp VARCHAR ( 1000 ); DECLARE t...

2019-10-13 20:53:16 3481

原创 二进制、八进制、十六进制转换及原码、反码、补码转换

二进制、八进制、十六进制转换及原码、反码、补码转换二进制如果说十进制是人类的计算度量单位,那么二进制就是机器识别的计算度量单位,十进制逢十进一,例如9+1=10,到10进位,各位数为0,十位数则加1为1,写出来则为10,在计算机中,有个概念叫位,一个byte是8位,我们下面讨论的都将以8位为准,例如1,在计算机中显示为0000 0001,那么计算机中1+1=2,则逢2进1就是0000 00...

2019-09-29 16:39:47 4313

原创 史上最简单5分钟配置MyBatis plus自动生成代码

MyBatis plus自动生成模板代码前言: mybatis plus是一款国人写的无侵入的数据层操作框架,使用简单,无需做太多的配置即可使用,在mybatis框架的基础上做了增强(最最主要的是文档能看的懂,这才是最重要的,本人英文基础比较差),最近的项目需要使用这个框架,所以特意写下这篇文章,为即将使用这个框架的同学提供些微不足道的帮助,本篇教程只关于自动生成代码的部分,非常的简单,可以说5...

2019-09-24 17:16:59 435

原创 Tengine整合FastDfs(上)

前言现在越来越多的企业都采用FastDfs作为文件上传下载服务器,所以本篇将详细介绍下FastDfs整合Tengine的教程,如果你尚未安装配置Tengine,可以参考我上一篇博文写的 CentOs7配置安装Tengine详细教程FastDfs介绍FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储...

2019-09-21 13:18:36 291

原创 CentOs7配置安装Tengine详细教程

CentOs7配置安装Tengine简单教程Tengine介绍Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。Tengine特点继承Nginx-1.17.3的所有特性,兼容Ng...

2019-09-17 12:00:59 1907

memcached-session-manager.zip

tomcat8+memcached所需完整jar包,网上的很多都不好用,这个我自己亲测可行

2019-10-13

mybatis-plus-code-generate.zip

史上最简单 5分钟mybatis plus自动生成模板代码教程

2019-09-24

空空如也

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

TA关注的人

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