自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 资源 (17)
  • 收藏
  • 关注

原创 netty基本用法, 拆包、粘包等常见解决方案,看本文即可,不做原理说明,只进行实战操作

完整的介绍了netty最基本的发送byte、string、byteBuf发送接收数据,以及拆包、粘包演示,拆包、粘包的解决方案。看netty的用法只看本篇足以,本篇只说用法,不讲底层原理。

2023-11-06 17:38:56 247

原创 docker 创建 elasticsearch. kibana.安装 es插件 release/elasticssearch-analysis-ik-8.10.2

https://github.com/medcl/elasticsearch-analysis-ik/releases 下载对应的版本,此处注意一定要和elasticsearch 版本对应起来,我的版本是 8.10.2 ,ik 的作者没有构建 8.10.2 的版本;,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user 这些用户的密码。设置为 false,否则访问不到es节点。

2023-11-01 15:03:46 140

原创 一个端口同时支持http 与https 协议

nginx 配置 同一个端口支持 http 和https 协议,ssl协议和非ssl

2023-03-06 10:05:52 764

原创 设计模式——策略模式

设计模式之策略模式,一步一步教你学设计模式

2022-11-03 12:38:01 151

原创 设计模式---单例模式

设计模式之单例模式,详尽了单例模式的9 种写法,包括饿汉模式、懒汉模式、内部类、枚举等多种形式的写法

2022-10-28 11:44:24 533

原创 liquibase shardingjdbc不兼容

版本:报错: at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot(SnapshotGeneratorFactory.java:215) at liquibase.snapshot.SnapshotGeneratorFactory.createSnapshot(SnapshotGeneratorFactory.java:244) at liquibase.snapshot.SnapshotGeneratorFactory.ge

2021-11-24 14:15:21 1266 1

原创 redis 报错 NoSuchFieldError: DEFAULT.redis.netty

redis 报错 NoSuchFieldError: DEFAULT具体报错如下:Exception in thread "main" java.lang.NoSuchFieldError: DEFAULT at io.lettuce.core.AbstractRedisClient.connectionBuilder(AbstractRedisClient.java:222) at io.lettuce.core.RedisClient.connectStatefulAsync(RedisClie

2021-09-29 17:00:30 448

原创 rabbitmq源码安装 yum 安装 并加入开机自启动

安装rabbitMqerlang mq 版本对应关系https://www.rabbitmq.com/which-erlang.html如果erlang 是源码安装,则对应的rabbitmq 也需要用源码安装的方式进行如果erlang 是采用yum方式安装,则rabbitmq 可以采用rpm的形式进行安装,如果erlang是源码方式安装,则rabbitmq 采用rpm方式安装会一直报错,显示找不到erlangrabbitmq 3.8.8 的版本貌似有问题,mq可以正常启动,但是stomp不能启用

2021-09-26 19:00:24 431

原创 从数据连接获取表信息

从数据连接获取表信息适配所有的数据库,如:oracle、mysql等。里面用到的异常请删除即可。需要引入hutool jar 包 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.5.5</ver

2021-08-26 11:48:41 182

原创 Redis 序列化

springframework.data.redis.serializer.SerializationException: Could not read JSON: Illegal character ((CTRL-CHAR, code 0)): only regular white space (\r, \n, \t) is allowed between tokensRedis 序列化springboot版本2.5.3<parent> <groupId>or

2021-07-29 14:13:33 1634 3

原创 shiro 定时监听器不生效的问题 onExpiration 不调用问题

问题redis 抛出异常:redis.clients.jedis.ScanResult.getStringCursor()Ljava/lang/String;Method threw 'java.lang.NoSuchMethodError' exception.说明spring-boot 版本 <parent> <groupId>org.springframework.boot</groupId> <art...

2021-07-21 14:25:19 443

转载 SVN的版本管理

SVN标准目录Subversion有一个很标准的目录结构,是这样的。比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是:这是一个标准的布局, trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改) 。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。trunk:主干,如果说把一个软件项目从开始到消亡比作一个故事的话,主线情节都在这里被SVN记录着。branches:分支,有很多种用法,

2021-07-05 16:01:44 3644

原创 锁是可重入的

一个同步方法可以调用另外一个同步方法,一个线程已经拥有某个对象的锁,再次申请的时候仍然会得到该对象的锁也就是说synchronized获得的锁是可重入的public class T { synchronized void m() { System.out.println("m start"); try { TimeUnit.SECONDS.sleep(2); } catch (InterruptedException e)

2021-07-01 11:40:36 71

原创 模拟银行账户

很重要,对于理解 锁的是哪个对象很重要以及volatile的可见性并不能代表数据的一致性以及数据的原子性,因此volatile并非是数据安全的。模拟银行账户读写,数据是否一致public class Account_01 { private String name; private int balance; void set(String name, int balance) { // 此处睡两秒是为了保证 main 主线程先执行一次getBalance

2021-06-30 21:19:58 329

原创 synchronized 同步调用非同步

同步方法里面可以调用非同步方法public class T1 { // 示例演示同步方法和非同步方法同时调用 synchronized void m() { System.out.println("synchronized method" + new Date()); n(); } void n() { System.out.println("not synchronized method" + new Date())

2021-06-30 21:19:13 290

原创 synchronized 使用理解、锁类

接上篇,本篇演示锁加在类上面public class T { private static Integer count = 0; public static void m() { //任何线程要执行下面的代码,必须先拿到当前对象的锁 //锁的是当前对象 synchronized (T.class) { for (int i = 0; i < 100000; i++) { c

2021-06-30 21:18:38 319 1

原创 synchronized 使用理解、锁对象

目的本文只针对synchronized的使用进行描述以及代码演示。具体原理不做深入探讨简介synchronized 在多线程并发环境下,通过加锁的形式保证了数据的一致性,锁存在Java对象头里。如果对象是数组类型,则虚拟机用3个Word(字宽)存储对象头,如果对象是非数组类型,则用2字宽存储对象头。在32位虚拟机中,一字宽等于四字节,即32bit。对象锁、代码块锁的使用先看一段示例代码代码块一public class T { private Integer count

2021-06-30 21:17:40 276

原创 volatile 指令重排的理解

指令重排内存可见性只是 volatile 的其中一个语义,它还可以防止 JVM 进行指令重排优化。举一个伪代码:int a=10 ;//1 int b=20 ;//2 int c= a+b;//3一段特别简单的代码,理想情况下它的执行顺序是: 1>2>3。但有可能经过 JVM 优化之后的执行顺序变为了 2>1>3。可以发现不管 JVM 怎么优化,前提都是保证单线程中最终结果不变的情况下进行的。可能这里还看不出有什么问题,那看下一段伪代码:privat.

2021-06-30 21:17:01 220

原创 volatile 非原子性

上一章节我们讲了 volatile的可见性的,以及可见性的演示,这里就会给大家产生一个误区,这样的使用方式很容易给人的感觉是对volatile修饰的变量进行并发操作是线程安全的。 其实不然,用volatile修饰的变量只有两个特性就是 可见性、禁止指令重排序。并不能保证线程的安全性 我们通过以下代码进行演示。 volatile int iCounter = 0; AtomicInteger atomicInteger = new AtomicInteger();

2021-06-30 21:16:32 176

原创 volatile可见性的理解

在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小。Volatile的官方定义Java语言规范第三版中对volatile的定义如下: java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。

2021-06-30 21:15:42 159

原创 线程的状态

线程共包括以下 5 种状态:1. 新建状态(New): 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。2. 就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。3. 运行状态(Running): 线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行状态。...

2021-06-30 21:14:37 239

原创 线程的三个方法

SLEEPsleep 意思是睡眠,当前线程暂停一段时间让给别的线程去运行。sleep是怎么复活的?由你的睡眠时间而定,等睡眠到规定的时间自动复活,CPU 没有线程的概念,会不断的从内存中获取指令去执行,睡眠的意思就是当前线程让出cpu 由其他线程去执行。 static void testSleep() { new Thread(()->{ for(int i=0; i<100; i++) { System.out.

2021-06-30 21:12:55 65

原创 创建线程的几种方式

通过实现Runnable接口来实现public class T01_CreateThread { // 创建线程的三种方式 public static void main(String[] args) {// 通过实现Runnable接口来创建Thread线程// 1、写一个类实现Runnable 接口// 2、创建一个对象 RunnableMe runnableMe = new RunnableMe();//

2021-06-30 21:11:46 49

原创 Ubuntu20 安装mysql5.7

1 下载安装包mysql 5.7 网易下载地址我下载的如下版本:2 解压安装包tar -xvf mysql-server_5.7.34-1ubuntu18.04_amd64.deb-bundle.tar 解压如下图,红色表示解压出来的内容:3 安装lib系列sudo apt-get install ./libmysql*4 安装libtinfo5sudo apt-get install libtinfo55按顺序执行下列命令即可sudo

2021-06-29 21:51:32 954 1

原创 redis三主三从搭建

1、主机172.16.12.252 172.16.12.2532、两台主机home 目录下创建文件夹/home/redis-cluster/7001/log /home/redis-cluster/7001/data /home/redis-cluster/7002/log /home/redis-cluster/7002/data /home/redis-cluster/7003/log /home/redis-cluster/7003/data3、配置文件,将配置

2021-06-27 14:15:59 80

原创 centos7 yum 安装mysql

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。1 下载并安装MySQL官方的Yum Repository[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm[root@localhost ~]# yum -y install mysql57-c.

2021-06-27 14:14:00 76

原创 centos7 源码安装mysql(附有主从复制配置文件) boost版本和非boost版本

yum 安装请参考 https://www.yuque.com/u1733081/hsolox/brcy5h卸载mariadb在CentOS中默认安装有MariaDB,这个是MySQL的分支,源码安装之前需要先写在mariadbrpm -qa | grep mariadbrpm -e --nodeps mariadb-5.5.52-1.el7.x86_64rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64rpm -e --nodeps

2021-06-27 14:13:09 321

原创 hbase 远程调试问题

本机没有配置 hadoop 的环境变量导致的:需要配置环境变量,如果不想重启电脑可以先加入以下代码:System.setProperty("hadoop.home.dir", "E:/workTools/hadoopAndHbase/hadoop-2.6.0/hadoop-2.6.0");官网下载这个东东:    地址:https://github.

2016-01-20 13:41:38 926

原创 hbase-site.xml 配置详解

该文档是用hbase默认配置文件生成的,文件源是 hbase-default.xmlhbase.rootdir这个目录是region server的共享目录,用来持久化HBase。URL需要是'完全正确'的,还要包含文件系统的scheme。例如,要表示hdfs中的'/hbase'目录,namenode 运行在namenode.example.org的9090端口。则需要设置为hdfs://

2016-01-20 13:40:23 41711 1

转载 hadoop常用命令:

hadoop常用命令: hadoop fs 查看Hadoop HDFS支持的所有命令  hadoop fs –ls 列出目录及文件信息  hadoop fs –lsr 循环列出目录、子目录及文件信息  hadoop fs –put test.txt /user/sunlightcs 将本地文件系统的test.txt复制到HDFS文件系统的/user/su

2016-01-20 13:39:26 664

原创 Hadoop 的安装与配置

1、确认是否安装了 jdk    2、配置ssh 免密码登录1)、确认当前用户下是否有 .ssh文件夹,如果没有手动创建。      2)、创建公钥与私钥    我本机执行命令后的结果:            3)、验证ssh是否已经安装成功,以及是否可以无密码登录本机3、安装并运行hadoop    进行配置文件

2016-01-20 13:38:11 1190

原创 Redis入门之 redis set集合的操作

/** * @author jackson * @date 2015-12-21 上午10:54:49 * @return void */ @Test public void jedisSet(){ //sadd 去除重复的元素 jedis.sadd("jedisSet", "1 2 3 4 5 5".split(" ")); Set s = jedis.smem

2015-12-21 12:14:36 10443

原创 Redis 入门之 redis 列表操作

/** * @author jackson * @date 2015-12-18 下午1:51:58 * @return void */ @Test public void jedisList(){ //lpush lrange ;lpush 当key 存在但不是列表类型时,返回一个错误 返回值: 执行LPUSH 命令后,列表的长度。 先进后出 long n

2015-12-21 10:49:51 1288

原创 Redis 入门之 redis 对hash的操作

接上一章 /** * {@link #test() test} * jedis 对 hash 进行操作 * @author jackson * @date 2015-12-17 下午2:48:30 * @return void */ @SuppressWarnings("unchecked") @Test public void TestJedisHash(){

2015-12-18 13:43:50 18723 1

原创 Redis入门之redis 连接以及 对字符的操作

package redis.clients.jedis.tests;import java.text.ParseException;import java.util.Iterator;import java.util.List;import java.util.Set;import org.junit.AfterClass;import org.junit.BeforeClass;

2015-12-17 14:48:12 16339 2

原创 Redis入门之Redis 安装超详细文档

1、由于所在linux不能上网,需要提前准备好安装包      1) redis-3.0.5.tar.gz (集群安装包) 注:redis 集群是在 3.0 版本以后才有的,需要下载3.0 以上版本    2)ruby-2.2.2.tar.gz    3)rubygems-2.4.2.tgz2、安装redis    1)解压 redis-3.0.5.tar.gz    2)

2015-12-17 14:46:36 9029 1

转载 AXIS调用jws发布的webservice出现Cannot find dispatch method for

服务端代码[java] view plaincopy@WebService  @SOAPBinding(style = SOAPBinding.Style.RPC)  public class WebserviceServer {      @WebMethod      public void doSomething() {

2015-08-07 16:06:02 6711 2

原创 windows 与vmware 下 Ubuntu 共享 /mnt/hgfs 为空问题

如何开启共享:安装 VMware tools 后即可在  Ubuntu 中的/mnt/hgfs下面看到 要是没看到可用以下方法解决: 进入Ubuntu  终端 按两下 tab 键  进入 vmware 命令 框 输入     vmware-hgfsclient 命令即可然后在 /mnt/hgfs 下即可看到你共享的文件夹了

2015-08-05 17:25:31 4844 3

转载 java 跨平台

1、是么是平台Java是可以跨平台的编程语言,那我们首先得知道什么是平台,我们把CPU处理器与操作系统的整体叫平台。CPU大家都知道,如果计算机是人,那CPU就是人的大脑,它既负责思维运算,又负责身体各部件的命令控制。CPU的种类很多,除去我们熟知的Intel与AMD外,还有比如上面说到的SUN的Sparc,比如IBM的PowerPC等等,这些各个公司生产的CPU使用或相同或不同的

2014-10-15 10:25:23 664 1

转载 GitHub for Windows 2.0使用教程

Git是目前最先进的分布式版本控制系统,作为一个程序员,我们需要掌握其用法、一:下载GitHub for Windows 2.0 二:安装GitHub 下载之后点击进行安装过程,安装之后桌面上会有两个图标,分别是  和  。三:新建项目GitHub是图形界面模式,Git Shell是命令行模式,在Windows系统下我们使用GitHub进行代码管理。 1:打开GitHu

2014-10-09 16:02:59 828 1

elasticsearch-analysis-ik-8.10.2 版本

elasticsearch-analysis-ik-8.10.2 版本基于 elasticsearch-analysis-ik-8.10.4 版本进行构建,适应于 docker elasticsearch-8.10.2 版本

2023-11-01

greenplum 教程

greenplum 的安装 使用,详解 psql的使用 greenplum 的架构等

2016-03-11

xmlbean生成jar xsd文件生成jar常见问题

xmlbean生成jar xsd文件生成jar常见问题

2015-12-24

rubygems-2.4.2 redis-3.2.1.gem

安装redis 集群所需要的rubygems-2.4.2 redis-3.2.1.gem

2015-12-17

redis 集群安装 ruby 资源报

redis集群 安装所需 jar ruby-2.2.2.tar.gz

2015-12-17

redis 集群安装包

redis 集群安装包,可下载进行redis集群的安装

2015-12-17

redis 安装超详细文档

redis 详细安装 操作步骤,下载资源安装步骤等

2015-12-17

虚拟机redhat 安装

本文详细介绍了如何在虚拟机下安装Linux RedHat 有图文介绍

2014-05-31

优化开机速度

关闭掉一些不常用的服务,使你的开机速度有明显的提升

2014-01-09

杀毒脚本系列

一款小型的杀毒脚本,可以对电脑进行最基本的扫描

2014-01-09

系统清理脚本

系统清理脚本,点击可帮你帮系统清理的干干静静

2014-01-09

setup在windows命令

在windows体验linux的感觉,可以使用linux命令来体验windows

2014-01-09

tomcat工具

tomcat 服务器,小而轻巧,web开发的好工具

2014-01-09

mysql 和 tomcat 集成工具

集成了mysql tomcat 等工具,不用安装即可运行

2014-01-09

java环境变量的设置

java 环境变量的设置, path classpath javahome的设置;

2011-12-29

java 常见的四种引用

1.强引用1.强引用 2.软引用(SoftReference) 3.弱引用(WeakReference) 4.虚引用(PhantomReference) 等等;

2011-12-29

java 基础教程

java基础 的语法 ,一些基础类的用法!适合人群:喜欢从事java开发,从未接触过java的

2011-12-29

web程序设计

web程序的详细ppt,其中有各类源码!都是经典的案例!

2011-12-29

空空如也

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

TA关注的人

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