自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 2.Maven 的Nexus 私服的安装

...

2018-08-31 17:04:03 135

原创 Mysql Innodb 事务隔离级别测试

1.修改mysql 默认的引擎#net stop mysql修改my.inidefault-storage-engine=INNODB#net start mysql // INNODB引擎介绍#mysql -hlocalhost -uroot -proot   //启动mysql 2. 事务并发导致的问题A.脏读 : 指一个线程中的事务读取到了另外一个线程中...

2018-08-31 11:10:27 237

原创 2.4并发类容器CopyOnWriteArrayList和CopyOnWriteArraySet

采用的读写分离,读的是旧的array,写的是新的arraypackage com.caolh.middle;import java.util.HashSet;import java.util.Iterator;import java.util.LinkedHashSet;import java.util.Set;import java.util.TreeSet;impor...

2018-08-26 12:46:09 162

原创 2.3 并发类容器CurrentHashMap

1.古老的同步类容器像:Vector(List),HashTable(Map),都是对整个数据结构加了锁,性能最低2.通过封装,将非锁的容器定义为加锁的容器对于非线程安全的list,对同一个位置处并发写入,则可能会覆盖,所以次数是小于1万package com.caolh.middle;import java.util.ArrayList;import java.util.C...

2018-08-26 00:27:06 207

原创 2.2 ThreadLocal 的使用

ThreadLoacal  成员变量是在JVM 里 对每个线程 单独进行了copy,所以,各个线程之间是不会影响的。t1 和t2 两个线程 操作th线程局部变量,t1 和t2 各自获得了cp1_th 和cp2_th 对th 的copy ,所以是各自操作各自的,不存在线程不安全的问题。package com.caolh.base;public class DemoThread...

2018-08-26 00:12:52 148

原创 2.1 Actomic类和乐观锁

该类实现了原子性操作。CAS -->compare and set ,乐观锁 实现,并未有真正的锁这种乐观锁和synchronized 不同,并没有将线程阻塞,而是通过各个线程不停地循环,判断版本号是否与之前相同,从而进行更新操作。t1和t2两个线程同时去进行++操作,t1获取了最新版本号1,进行update操作时候v1 ==v0 (假设此时t2还未接入),v0=2,a=4执...

2018-08-24 21:33:33 1408

原创 1.6关于volatile 关键字的探讨

其实我是发现有矛盾的问题的。多线程主要是 可见性、原子性的问题,volatile 主要是 解决了可见性的问题,原子性并未解决,所以仍是线程不安全的。如果没有volatile 关键字,两个线程,左边线程从共享内存中获取x=1 ,将x给到自己的工作内存,修改后,写回共享内存,此时线程2是不知道的,获取的仍是x=1;加了volatile ,则线程1 ,直接对共享内存的x操作,线程2是立刻...

2018-08-23 00:04:53 172

原创 10.redisTemplate 操作

1.操作Hash  1)保存数据,多个字段保存一个map    Map userMap = new HashMap();    //查询用户的昵称,图片地址,存到redis 里    userMap.put("userId",findUser.getId()+"");    userMap.put("userName",findUser.getUserName());    user...

2018-08-22 11:26:34 803

原创 9.redis集群删除节点

1.  7008 从节点删除  1)查看7008从节点id[root@localhost redis-cluster]# /usr/local/bin/redis-cli -c -h 192.168.50.160 -p 7001192.168.50.160:7001> cluster nodesf92eb54bcc0b89e5b559f1295e95309564538079 1...

2018-08-22 11:25:50 261

原创 8.redis 集群增加节点

新增 7007,7008节点1.创建配置文件 ,并启动该节点bin/redis-server redis-cluster/7007/redis.confbin/redis-server redis-cluster/7008/redis.conf info ,可以看到是master ,但并没有从节点信息。2. 添加一个主节点7007//该命令在src源码目录下...

2018-08-22 11:25:06 768

原创 7.redis 的集群搭建

单节点,8G内存 部署6台测试。1.#mkdir  /usr/local/redis-cluster#mkdir 7001 7002 7003 7004 7005 7006 2.配置一个7001 的redis.conf   1)bind 192.168.50.160         //这里都在一个节点上了,6台机器应绑定各自端口     port 7001        ...

2018-08-22 11:23:55 239

原创 6.redis的高级特性

1.查找键,模糊查询以 s 开头的key keys s*2.判断key是否存在返回1表示存在exists yyy3.设置过期时间expire name 60ttl name (integer) 42  //返回时间,如果已经过期 ,则返回-2;如果数据永久不过期,则返回-1;如果正在过期,即返回剩余时间persist name   //取消过期时间4...

2018-08-22 11:23:15 211

原创 5. redis 的set 数据类型

无序的字符串集合,2 ^32 40亿数据 ,时间复杂度O(1),给予hashtable 实现,可以实现交集、并集、补集操作。1.添加元素、查看元素都是无序的192.168.50.160:6379> sadd set aaa bbb ccc ddd(integer) 4192.168.50.160:6379> smembers set1) "ddd"2) "aaa"...

2018-08-22 11:22:23 112

原创 4. redis 的链表结构

  list 是一个双向链表 ,左侧是头,右侧是尾,两端都可以进出数据。有序的字符串集合。  可以模拟 队列:先进先出 ,可以模拟堆栈:先进后出     左侧进,右侧出,则模拟的是队列(或者右侧进左侧出);  左侧进,左侧出,则模拟的是堆栈(或右侧)   lpush 、lpop:从头部写入、删除数据  rpush、rpop:从尾部写入、删除数据1. 模拟堆栈  ...

2018-08-22 11:21:14 186

原创 3. redis 的hash类型

适合存储对象,相当于java 里面的一个 hashmap对象,保存数据库的一行记录。1. 单个赋值  map相当于一个hashmap的引用192.168.50.160:6379> hset map name caolihua(integer) 1192.168.50.160:6379> hget map name"caolihua"192.168.50.160:6...

2018-08-22 11:19:53 101

原创 2.redis 的String 数据类型

字符串最大长度是 2^31-1 ,即512M。1. redis 获取所有的key   # keys *   删除所有的key  #flushall2.设置string 的值  # set name caolihua  # get name  >caolihua  删除key     del name4.如果这个key不存在,则可以设置  #se...

2018-08-22 11:18:25 155

原创 1.redis 单节点搭建

1.下载地址https://redis.io/download    3.2.11版本 2. 安装  a.解压     # tar -zxvf redis-3.2.11.tar.gz -C /home/caolh/    里面的redis.conf 文件很重要  b.编译    #cd redis-3.2.11,(需要安装gcc软件包先 yum -y install g...

2018-08-22 11:12:50 768

原创 1.5 线程的 5种状态

线程的5个状态说明:线程共包括以下5种状态。1. 新建状态(New)         : 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。2. 就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时...

2018-08-21 23:44:25 176

原创 1.4 wait/notify 实现线程安全的阻塞队列

要解决2个问题:1.多个线程并发从队列取数据,写数据,要保证同步2.单个线程取数据,数据为空,阻塞;单个线程写数据,数据满了,阻塞package com.caolh.base;import java.util.ArrayList;import java.util.List;class MQueue { private List<String> list...

2018-08-21 01:33:20 285

原创 1.3 wait 和notify 原理

wait 和notify 是实现线程之间的协同工作,必须结合synchronized使用,wait 释放锁,notify 不释放锁(但是此时会通知在等待的wait,该notify完全执行完毕,才真正释放锁)public class DemoThread18{ //原子类 private volatile List<String> list = new ArrayList...

2018-08-21 01:31:08 393

原创 1.2 死锁 原理

两个线程,假设第一个线程先执行了execute1拿到lock1 锁标记,sleep,让出cpu时间片;第二个线程 拿到lock2。此时线程1尝试拿lock2 始终拿不到,线程2也是如此,所以进入死锁状态。public class DemoThread12 { private Object lock1 = new Object(); private Object lock2 = ne...

2018-08-21 01:25:03 139

原创 1.1 认识synchronized 关键字

两个线程有单独的工作内存和共同访问的主内存不同线程安全的概念:   1.如果多线程访问一个类、对象、方法表现的特征和一个线程访问的结果一致,那么这个类、对象、方法就是线程安全的    2.线程安全问题是由对象的成员变量和类的静态变量引起的   3.每个线程对成员变量和静态变量只有读操作,是线程安全的,有写操作,那么就是线程不安全的package com.caolh.bas...

2018-08-21 01:20:15 165

原创 7.9 继承与初始化

package com.caolh._7ReusingClass;//: reusing/_9_1Beetle.java// The full process of initialization.class Insect { private int i = 9; protected int j; Insect() { System.out.println("i = "...

2018-08-14 00:24:10 83

原创 7.复用类 的组合 、继承、代理三种使用方式

  类的复用 ,主要有 组合、继承、代理 三种方式。7.1组合,就是 has-a的关系,而非 is-a.package com.caolh._7ReusingClass;//: reusing/_7_1SprinklerSystem.java// Composition for code reuse.class WaterSource { private String s; ...

2018-08-14 00:09:52 190

原创 5.7 构造器的初始化顺序

构造器初始化流程顺序 主要是包括这几层关系:      非静态成员属性、静态成员属性、非静态代码块、静态代码块、构造器,这5者的关系.对于这几层关系 ,我分开来阐述,避免在一个类中统一归纳,比较麻烦,不易理解。1.非静态成员属性     可以看到w1、w2、w3 散列于House()构造方法之间,但从结果来看,是先初始化w1,w2,w3,最后调用构造方法package com...

2018-08-12 01:38:56 178

原创 5.4.1 this 关键字

this 表示的是当前对象的引用 ,常见于 普通方法和构造方法中的使用1.普通方法的使用package com.caolh._5InitializationAcleanup;//: initialization/_5_7Leaf.java// Simple use of the "this" keyword.public class _5_7Leaf { int i = 0;...

2018-08-12 01:08:25 98

原创 7.8 final 关键字

final 关键字主要是:数据、方法、类7.8.1 final 数据  a.final 数据的赋值 final 修饰的属性值是不可变的,多个对象的各自的final值是不可变的,static 修饰的值是静态成员变量只有一份。final 和static 共同修饰的值:就是类的值,不可变,且只有一份,用大写下划线表示:如VALUE_TWOfinal 修饰的基本数据类型,不可以变;fi...

2018-08-10 18:59:18 96

原创 3.springboot整合rabbit

....

2018-08-07 18:07:06 109

原创 2.rabbitmq 的几种队列模型

官网文档:    http://www.rabbitmq.com/getstarted.html个人demo测试   https://github.com/youmustbekiddingme/springboot1.simple模式  即简单的点对点消息模型。开启mq服务,开启进程P 生产者向mq 写消息,进程C消费者监听mq,消费消息。2.work 模式   一个生...

2018-08-07 02:58:45 2138

原创 1.Windows/Linux 安装 rabbitmq

下载地址:1.先安装Erlang 应用otp_win64_17.3.exe ,安装rabbitmq-server-3.4.1.exe注意:计算机的cmd 现实的用户名必须是英文,本机计算机名也必须是英文2.安装 界面控制台#cd C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.4.1\sbin#rabbi...

2018-08-06 15:26:47 117

原创 keytool 配置Zuul 网关 Https 证书

Java JDK 自带命令:windows环境1.生成证书 :caolh.jksC:\Users\Administrator>keytool -genkey -alias caolh.jks -keystore C:/caolh.jks -validity 36500输入密钥库口令:再次输入新口令:您的名字与姓氏是什么? [Unknown]: caolh您的组织...

2018-08-06 02:15:01 1423

原创 Spring cloud LCN分布式事务解决方案

经测试:以Ribbon RPC调用,A服务调用B服务,A服务数据库和B服务数据库是分开的,如果B服务有Trans 事务控制,B服务异常,B实现事务回滚;A服务根据B返回的-1,throw 异常,A实现事务回滚。这样实现了分布式事务控制。 这是异常处理的情况。 但是,如果B服务执行成功,B返回途中,网络异常,B是完成事务提交的,但是A始终没有收到B的消息,A回滚,这样就数据不一致了。...

2018-08-05 17:44:45 1096 2

原创 2.1 执行javac ,java 找不到或无法加载主类

1. 代码package caolh;/** * Created by Administrator on 2018/8/3 0003. */public class Test { public static void main(String[] args) { System.out.println("hello world"); }}执...

2018-08-04 01:40:00 233

原创 1.Windows环境安装RocketMQ和监控

1. 官方下载二进制文件http://rocketmq.apache.org/release_notes/release-notes-4.2.0/2.解压缩 并配置环境变量 ROCKETMQ_HOME=F:\rocketMQ-WIN\rocketmq-all-4.2.0-bin-release3.启动NAMESERVERF:\rocketMQ-WIN\rocketmq-all-4....

2018-08-03 01:02:51 630

原创 1.Maven Profile Springboot 打包,动态切换

经测试,绝对管用。要解决怎样的问题?一键maven package ,可以指定 test,dev,prod 的版本,同时 该版本的变换 ,会 同样改变相应版本下的配置参数,适用于Springboot的方式。1.POM文件 需要添加的<properties> <resource.delimiter>#</resource.delimit...

2018-08-01 21:02:27 1181

com.goplaycn.googleinstall-4.8.3-483-78420.apk

安卓手机google play 安装需要的安装包,会自动搜索相关谷歌框架,实现完整的安装。在google paly里面可以下载facebook,amazon相关软件工具。 本人手机安卓7.0以上可以

2020-03-04

空空如也

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

TA关注的人

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