自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (3)
  • 收藏
  • 关注

原创 温故知新之-TCP Keepalive机制及长短连接

主要介绍TCP Keepalive机制及长连接的实现方式

2024-04-14 20:43:00 1056

原创 ClickHouse创建MySql引擎报错(Code: 501)

日常踩坑,记录问题解决思路及过程!最近工作中用到ClickHouse,并且需要同步MySql数据库中的数据,因此就想到使用ClickHouse的MySql数据库引擎,结果“勇敢的少年,倒在了第一步”。在ClickHouse客户端执行下面的Sql时报错了CREATE DATABASE practice ENGINE = MySQL('IP:PORT','practice','用户名', '密码');报错信息如下:Received exception from server (version

2021-08-06 16:51:55 4736 2

原创 BitMap核心算法详解及实现

什么是Bitmap所谓的BitMap就是用一个bit位来标记某个元素所对应的value,而key即是该元素,由于BitMap使用了bit位来存储数据,因此可以大大节省存储空间。重要特性1.存储空间小由于Bitmap是通过bit来标识状态,数据将会高度压缩因此占用存储空间极小,存储变小也可以带来很多其它性能红利,如:内存、磁盘IO、网络带宽等。如果用int类型表示一个整数,占用空间为(4byte = 32bit)。若用bitmap表示一个整数,占用空间为1bit。 内存节省了32倍。假设需

2021-07-24 23:03:22 1841 4

原创 Prometheus+JmxExporter 监控告警最佳实践

概述当你的 Java 应用运行起来之后,如果对其进行监控呢?Prometheus 社区开发了 JMX Exporter 来导出 JVM 的监控指标和自定义指标(自定义MBean),以便使用 Prometheus 来采集监控数据。本文将介绍如何利用 Prometheus 与 JMX Exporter 来监控你 Java 应用,并使用Grafana和Alertmanager对指标进行监控和告警。​动手之前,容我先简单介绍一下Prometheus和JmxExporterPrometheus简介Prom.

2021-07-03 14:22:29 12762 2

原创 通俗易懂系列 | RocketMQ源码分析之NameServer

语雀传送门⚠️注意:本系列文章,计划按照NameServer、Broker、Producer、Consumer的顺序发布,因此本文中Broker和Producer链接的文章还未完成。目录前言为什么需要NameServer?NameServer架构设计NameServer启动流程NamesrvController创建NamesrvController初始化NamesrvController启动NameServer功能介绍NameServer路由注册NameSer

2021-01-16 20:31:40 787 2

原创 打印MyBatis的sql日志

在日常看开发过程中,想要查看mybatis的执行sql,可以通过在logback中增加如下配置实现,在此简单记录一下<!-- 控制台日志 --><appender name="stdout-appender" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%thread|%d{yyyy-MM-dd HH:mm:ss.SSS}|%msg%n</

2020-12-30 11:28:35 1167

原创 ThreadPoolExecutor源码详细分析

ThreadPoolExecutor源码解读主要成员// 该变量保存了两个内容,低29位保存有效的工作线程数量workerCount,高3位保存线程池状态runStateprivate final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));// ctl变量中保存有效线程数量的位数(即29)private static...

2020-03-19 17:11:41 199

原创 ContextRefreshedEvent使用注意事项

ContextRefreshedEvent 事件会在Spring容器初始化完成会触发该事件。我们在实际工作也可以能会监听该事件去做一些事情,但是有时候使用不当也会带来一些问题。防止重复触发主要因为对于web应用会出现父子容器,这样就会触发两次,那么如何避免呢?下面给出两种简单的解决方案。父子容简单说明:当一个项目中引入Spring和SpringMVC这两个框架,其实就是2个容器,Spr...

2020-03-15 20:19:37 889

原创 Java设计模式之深入理解状态模式

模式动机在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。模式定义状态模式(State Pattern) :允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改...

2020-02-24 20:08:03 328

原创 Apache RocketMQ开发者指南

本文参考:https://github.com/apache/rocketmq/tree/master/docs/cn基本概念1 消息模型(Message Model)RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对...

2020-02-23 21:00:20 767

原创 Spring IoC之深入分析Bean的生命周期

Spring 并不是一启动容器就开启 bean 的实例化进程,只有当客户端通过显示或者隐式的方式调用 BeanFactory 的 #getBean(...) 方法来请求某个实例对象的时候,它才会触发相应 bean 的实例化进程。这也符合懒加载的,也可以选择直接使用 ApplicationContext 容器,因为该容器启动的时候会立刻调用注册到该容器所有 bean 定义的实例化方法。当然,对于 B...

2020-02-23 20:54:23 177

原创 Spring IoC之处理Bean创建循环依赖

什么是循环依赖循环依赖,其实就是循环引用,就是两个或者两个以上的 bean 互相引用对方,最终形成一个闭环,如 A 依赖 B,B 依赖 C,C 依赖 A。如下图所示:循环依赖,其实就是一个死循环的过程,在初始化 A 的时候发现引用了 B,这时就会去初始化 B,然后又发现 B 引用 C,跑去初始化 C,初始化 C 的时候发现引用了 A,则又会去初始化 A,依次循环永不退出,除非有终结条件...

2020-02-23 20:48:11 301

原创 Spring TX之深入分析事务传播行为

Spring事务传播行为Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。Spring中七种事务传播行为如下:// Propagation.javapublic enu...

2020-02-23 20:41:08 216

原创 通过银行转账问题解说死锁解决方案

大家都知道,在并发情况下对两个账户进行转账操作可能会产生死锁,可能出现死锁的原因是,并发情况下对两个账户的操作无法保证其执行顺序。1. 并发问题描述假如现在执行下面的操:线程一执行的是:【账户A】给【账户B】转账线程二执行的是:【账户B】给【账户A】转账如果两个转账动作同时执行,则会出现线程一会请求对【账户B】进行加锁,线程二会请求对【账户A】进行加锁由于此时的【账户A】已...

2020-02-19 17:55:09 2583

原创 COLA 2.0架构应用

最近公司准备启动一个新项目,需要用到COLA 2.0,于是就准备先学习一下COLA 2.0 框架。自己动手生成COLA应用,本文记录生成COLA应用过程。有关COLA 2.0 架构的介绍可以看应用架构 COLA 2.0下载CLOA 2.0项目CLOA 2.0 传送门执行git [email protected]:alibaba/COLA.git因为生成COL...

2019-12-11 14:11:48 3603 1

原创 聊聊分布式事务

总是听别人说分布式事务,在面试中也被问到过几次,但依旧对分布式事务不太了解。而最近考虑换工作,所以想把这块深入的学习一下,本文作为学习的备忘录,在此分享给大家。如有错误欢迎指正!理论基础在学习分布式事务之前,我们先了解一下分布式事务的理论基础,这样有助于我们更好的理解和实践现有的分布式事务解决方案。本地事务本地事务(数据库本地事务)中的四大特性ACID(Atomicit...

2019-12-08 11:59:22 244

原创 JDK和CGLib动态代理实现和区别

前言上周五在电面试阿里时,被问到Spring AOP中JDK和CGLib动态代理的区别?于是搜集网上相关知识点,在此整理一下,供大家参考。JDK和CGLib动态代理实现动态代理在Java中有着广泛的应用,如Spring AOP,Hibernate数据查询、测试框架的后端mock、RPC,Java注解对象获取等。动态代理的代理关系是在运行时期确定的。在讲解两种动态代理区别之前,首先通过实...

2019-12-02 16:38:25 3089 1

原创 Java NIO 看这篇文章就够了

分享:『歌名:SoloDance 歌手:Martin Jensen』原文(英文)概述Java NIO 由以下几个核心部分组成:Channels Buffers Selectors虽然Java NIO 中除此之外还有很多类和组件,但Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使...

2019-11-29 15:42:56 124

原创 Java序列化和反序列化

序列化和反序列化序列化(Serialization)是将对象的状态信息转化为可以存储或者传输的形式的过程,一般将一个对象存储到一个储存媒介,例如档案或记忆体缓冲等,在网络传输过程中,可以是字节或者XML等格式;而字节或者XML格式的可以还原成完全相等的对象,这个相反的过程又称为反序列化。Java对象的序列化和反序列化在Java中,我们可以通过多种方式来创建对象,并且只要对象没有被...

2019-11-24 11:22:28 191

原创 synchronized 关键字详解

Synchronized关键字synchronized是Java提供的内部锁,里边有类锁和对象锁。synchronized关键字能够用于编辑4种不同类型的块:实例方法 静态方法 实例方法中的代码块 静态方法中的代码块这些块被同步在不同的对象上。使用哪一种synchronized块是取决于实际情况。同步的实例方法synchronized关键字修饰在实例方法上,则该方法就...

2019-11-08 11:38:39 186

原创 SpringBoot整合Redis-最佳实践

前言Spring Boot对很多NoSQL数据库提供了自动化配置的支持,包括为Redis,MongoDB,Neo4j,Elasticsearch,Solr Cassandra、Couchbase和LDAP。本文主要介绍,SpringBoot整合Redis的配置以及本人在SpringBoot项目中使用Redis遇到的问题和解决方法。RedisRedis是一个开源的使用ANSIC语言编写...

2019-08-22 18:05:07 4820

原创 SpringBoot整合AOP-最佳实践

号外:今天(2019-08-22)写这篇博客的时候,正好是带着耳机听歌,突然有一个想法,在以后的博客里都将会把我写博客时听的觉得好的歌分享给大家,希望与大家不只是技术的交流!学习之前,先听一首歌。今日分享:『歌名:水星记 歌手:郭顶』前言 最近在做一个后管系统,涉及到一个需求想要记录“特殊”方法的调用日志以及方法调用前后数据状态变化。我立马想到用AOP实现该功能,但是...

2019-08-22 17:50:54 1023

原创 【Tomcat源码阅读】核心组件介绍(二)

Tomcat总体结构Tomcat总体结构用下图来表示 图片摘自:https://blog.csdn.net/jiaomingliang/article/details/47393141从上图可以看到,Tomcat是由Server、Service、Engine、Connerctor、Host、...

2019-07-23 18:32:06 317

原创 【Tomcat源码阅读】IDEA导入源码(一)

一、下载Tomcat源码Tomcat源码获取途径网上有很多,这里直接从Tomcat官网获取。目前Tomcat官网最新版本为:9.0.22在页面底部,下载对应的zip文件。下载成功后解压,解压后如下图:二、添加pom文件启动Tomcat需要一些额外的jar包,因此在apache-tomcat-9.0.22-src在根目录新建pom.xml文件,引用jar包。Tomcat...

2019-07-22 11:45:25 1060

原创 蚂蚁金服社招笔试——根据需求实现一个转账接口

最近在考虑换工作,经历了两轮电话面试之后,蚂蚁金服给我发了一份笔试题目,需求如下:使用java语言编写, 实现一个转账接口. 该接口提供账户之间的转账服务,入参包括转入账号、转出账号,交易金额,以及交易单号,接口返回是否处理成功, 以及失败原因。请确保在并发请求下, 资金处理期间和最终, 用户的账户余额都不会透支,同一笔交易单不会被重复处理。不需要编写UI界面. 不需要连接数据库,数据库操作在...

2018-07-29 15:40:49 5684 6

原创 利用开源cpdetector转换指定文件下所有文件的编码格式

最近想整理一下以前写的代码,发现很多项目的编码格式不统一或同一个项目中不同的文件编码格式也不相同,于是在网上找了一下相关博客,发现大部分都需要在方法参数上输入源文件的编码格式,这种做法对需要转换的文件数量少的情况下,还可以勉强使用,当需要转换的文件很多时,很明显是不适用的。所以如果有工具能获取文件的编码格式,然后按照文件的编码格式读取文件,最后按照指定的编码格式将读取到的文件内容写入文件,从而完成...

2018-07-29 15:10:14 1020

原创 Java开发实战经典 表述错误?

今天看李兴华老师的Java变成实战经典 以个人的理解,老师在此书中对OutputStreamWriter描述是不正确的因此分享出来大家讨论一下

2017-10-26 18:49:58 348

转载 Spring注解@Component、@Repository、@Service、@Controller区别

问题:在spring集成的框架中,注解在类上的@Component,@Repository,@Service,@Controller等注解能否被互换?或者说这些注解有什么区别及各自的功能?原文链接:https://github.com/giantray/stackoverflow-java-top-qa/blob/master/contents/whats-the-differen

2017-04-05 15:48:33 3345

原创 挖财2017年校园招聘,编程题

晚上参加了挖财的笔试,把考试写的整理一下 给大家分享,代码实现很简单 希望对有需要的人的有所帮助。主要是还要体会这一类题目的处理方式,代码如下:public class CountWord{ public static void main(String[] args) { File file = new File("F:"+File.separator+"test.txt

2016-10-17 21:43:41 1243

原创 Java与模式之建造者模式详解

建造模式是对象的创建模式。建造模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。产品的内部表象一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又叫做产品的内部表象。不同的产品可以有不同的内部表象,也就是不同的零件。使用建造模式可以使客户端不需要知道所生成的产品对象有哪些零件,每个产品的对应

2016-09-24 21:28:59 1466 2

原创 对sprig框架中控制反转(依赖注入)的理解

package zj.zgs.dao;public interface UserDao { public void getUser();}package zj.zgs.dao.impl;import zj.zgs.dao.UserDao;public class UserDaoMySqlImpl implements UserDao { @Override public void

2016-09-15 16:27:00 533

原创 网易运维开发岗笔试题目

/* 题目描述:* 假设你去超市买苹果,现在超市有两种包装的苹果:一种一袋里面装6个苹果,另一种是一袋里面装8个苹果。* * 现在假设你要买88个苹果,就有如下几种组合:* 6个苹果的袋数为:0 8个苹果的袋数为:11* 6个苹果的袋数为:4 8个苹果的袋数为:8* 6个苹果的袋数为:8 8个苹果的袋数为:5* 6个苹果的袋数为:12 8个苹果的袋

2016-09-13 20:37:16 1438

原创 关于单例设计模式中的双重判断的理解和分析

之前在很多地方看到过这种单例的实现,但是对其中的两个if判断的作用不理解。今天就详细的解释一下:class SingletonTwo{ /* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */ private static SingletonTwo instance = null; /* 私有构造方法,防止被实例化 */ private Singl

2016-09-11 13:35:40 6907 6

原创 斐波那契数列多种实现方式

最近整理之前自己学习Java时的一些代码笔记,可能都是一些比较基础的Java知识,在这里只是给需要的人参考一下。package interview;public class SolutionFibonacci { public static int Fibonacci(int n) { int target=0; if(n==0) return 0;

2016-07-30 19:46:09 437

原创 折半查找和顺序查找

package interview;public class Search { public static void main(String[] args) { int arr[] = {1,2,3,4,5,6,7,8,9,10}; int index1 = 0; int index2 = 0; index1 = sequentialSearch(arr,2);

2016-07-30 17:00:43 832

原创 字符串单词反转

输入:Many People In Room GHHSAaasABt输出:Ynam Elpoep Ni Moor TBASAaasHHgpackage interview;public class ReverseWord { public static final StringBuffer sb = new StringBuffer(); public static vo

2016-07-30 16:45:22 401

原创 替换字符串中的空格

最近整理之前自己学习Java时的一些代码笔记,可能都是一些比较基础的Java知识,在这里只是给需要的人参考一下。请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。package interview; public class ReplaceSpace { publi

2016-07-30 16:05:56 279

原创 用两个栈来实现一个队列,完成队列的Push和Pop操作

最近整理之前自己学习Java时的一些代码笔记,可能都是一些比较基础的Java知识,在这里只是给需要的人参考一下。题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。package interview;import java.util.Stack;public class Queue_Stack { St

2016-07-30 15:54:20 2064

原创 跳台阶算法

最近整理之前自己学习Java时的一些代码笔记,可能都是一些比较基础的Java知识,在这里只是给需要的人参考一下。package interview;/*一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。*/public class JumpFloor { public static void main(String[] args)

2016-07-30 15:32:11 685

原创 统计字符串中每个字母的个数

最近整理之前自己学习Java时的一些代码笔记,可能都是一些比较基础的Java知识,在这里只是给需要的人参考一下。统计一个字符串中的每个字母的个数现有字符串:dludsstytrwtrjahtksdhksrterahruyusrgaerhdukxhzgsfytk输出结果为:a(3)d(4)e(2)f(1)g(2)h(5)j(1)k(4)l(1)r(7)s(6)t(6)u(4)w

2016-07-30 15:19:24 3612

MemoryAnalyzer-1.12.0.20210602-macosx.cocoa.x86_64.dmg

JVM分析工具

2021-07-28

Apache RocketMQ开发者指南.pdf

参考https://github.com/apache/rocketmq/tree/master/docs/cn整理的RocketMq开发者指南,分享给大家!如有问题,欢迎讨论。

2020-02-19

java_ee_6_api 中文版

JavaTM Platform, Enterprise Edition 6 API Specification中文版帮助文档

2015-10-12

空空如也

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

TA关注的人

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