自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 rocketmq事务消息源码分析 (producer篇)

rocketmq的分布式事务消息分析 简单介绍 RocketMQ是阿里巴巴在2012年开源的分布式消息中间件。 目前已经捐赠给apache。 剩下的不吹了。。百度上都查得到。。 doc: doc地址 源码具体地址: github地址 tcc事务 现在都在讲微服务, 把每个模块单独的拆出去对外提供服务。 虽然减少了许多维护成本和冲突成本。 (之前几十个人维护一个项目的时候,动不...

2019-10-24 20:53:05 242

原创 java,php,go垃圾回收

java篇: java由于其比较特殊的内存分配结构, 对待gc也是非常认真, 提炼出了自己的方法。 (具体的清除方法会根据不同的区域,老年代,young代,堆区的其他地方 会采用不同的分代收集的方法) 可达性分析: 1. 可达性 从GCroot(引用节点)节点出发进行遍历,只要从gcroot节点可达,则证明是非垃圾, 对于从gcroot节...

2019-07-09 14:50:58 243

原创 jvm 垃圾回收算法

jvm垃圾回收算法(GC) 大概有如下几种 1. 标记-清除(Mark-Sweep)     分为标记和清除两个阶段, 标记所有可回收的对象,在统一回收所有标记对象;   两个阶段都需要遍历所有的空间,效率都比较低, 缺点是回收后,会产生大量空间碎片。  在进行此类gc时会强制停止所有的应用程序(避免对已标记的进行破坏) 2. 标记-整理(Mark-Compact)   是标记-清除的优化...

2019-01-05 14:13:46 90

原创 spring aop实现 -- 未完待续

a 一. AOP介绍  AOP(Aspect Oriented Programming) 面向切面编程, 是OOP(Object Oriented Programming)面向对象编程的 补充,是一种思想。 OOP的特性(封装,继承,多态,抽象),主要强调的 对象或者类之间的纵向关系, 而横向关系却无法得到确保。 AOP正是补充的横向关系。      一个非常简单的小例子,例如我们当前有三个类...

2019-01-04 17:53:09 158

原创 HashMap

一. Map与hashMap   Map是一种数据结构,一个关联容器,提供一对一的数据处理能力,即key-value的结构,和传统的list还是有些区别。 其实我个人觉得 python的Dictionary的名称可能更合适一些,php就更省事直接一个array包揽万物。。。当然 名称无所谓。在java中,map有很多实现,比如常用的HashMap,treeMap,LinkedHashMap,Co...

2019-01-04 17:50:16 179

原创 ReentrantLock

ReentrantLock是一个可重入的互斥锁,ReentrantLock由最近成功获取锁,还没有释放的线程所拥有,当锁被另一个线程拥有时,调用lock的线程可以成功获取锁 。如果锁已经被当前线程拥有,当前线程会立即返回。此类的构造方法提供一个可选的公平参数。ReentrantLock顾名思义就是锁可以重入,一个线程持有锁,state=1,如果它再次调用lock方法,那么他将继续拥有这把锁,st...

2019-01-04 17:48:51 186

原创 类加载器classLoader

类加载器: 用来加载java类到java虚拟机中.      java.lang.classLoader根据一个指定类名称,找到或生成对应的字节码,从中定义出一个JAVA类。 还负责加载JAVA应用锁需要的资源.   常用方法:        getParent() : 返回其父类加载器       loadClass(String name) 加载name类       findCl...

2019-01-04 17:26:55 97

原创 jvm 垃圾收集器

    垃圾收集器就是收集算法的具体实现,不同的虚拟机会提供不同的收集器。两个收集器之间存在连线的话就说明它们可搭配使用。    serial收集器: 单线程收集器,使用复制收集算法,收集时会暂停所有工作线程(stop the world),虚拟机运行在Client模式时的默认新生代收集器。 优点是:简单高效 。 在单个CPU的环境来说,没有线程交互的开销,在client情况下的默认+首...

2019-01-04 15:57:14 83

原创 String

final类,也就是无法被继承, 底层实际是 final char[] value ,享元模式最经典的存在。 所以存在于常量池中,并且不可改变,所以是线程安全的。 (jdk8之后常量池取消) 。 存储于常量池中, 可以直接用=赋值(java特殊处理), 赋值时先会去常量池查找,没有则新建。 几乎所有操作在底层都是将char[] 复制备份之后在进行操作,并最终new String 已保证常量性. 可...

2019-01-04 15:52:52 86

原创 线程池 - ThreadPoolExecutor

继承了AbstractExecutorService(抽象类)   该抽象类实现了ExecutorService 接口   该接口又继承于Executor接口        Executor接口只有一个方法void execute(Runnable command);    Executor是一个顶层接口,其唯一的方法用来执行runnable任务;    ExecutorService接...

2019-01-04 14:21:39 143

原创 volatile

  volatile被称为轻量型synchronized。用volatile修饰的成员变量在每次被线程访问时,都会从共享内存中重新读取该变量的值,当该成员变量变化时,强迫线程将变化后的值写入共享内存;效率较低;对volatile修饰的变量操作不会造成阻塞;对于变量改变,无法提供原子性保证     当该变量已在同步代码块或者为final修饰时,不必使用;     是一种轻型同步,具有可见性.  ...

2019-01-03 21:47:44 134

原创 elasticSearch 单机(mac)伪分布式集群搭建

由于用的是mac本, 所以索性逃课 用brew装了es。 (版本是6.8.*), 7还没有更新上来。 当然用docker会好一些。 1. 找到安装地址和配置文件路径 1.1 安装地址 brew默认安装目录是/usr/local/Cellar 也可以利用命令 查看具体应用的安装地址 brew list elasticsearch 结果: 1.2 配置文件地址查看: brew info elas...

2019-11-21 20:07:37 501

原创 go+rabbitmq实现一个简单的tcc

之前的文章解析了rocketmq的事务(关于producer的), 由于自己使用的是rabbit(界面友好,虽然不是分布式的 但也基本ok), 所以简单实现了一个。 核心的思想参考了rocketmq, 主要分为两个阶段, 事务执行阶段和消息发送阶段。 *1. 如果事务执行出问题,那么消息不会发送,可以利用报警或者日志去处理 *2. 如果事务执行成功,消息发送失败, 则事务进行回滚操作...

2019-10-29 17:01:07 1113

原创 go time.Parse的一些小知识

之前都是写在笔记里,搬到csdn上。。。go的time.Parse时区问题layout模版总结 go的time.Parse 在自己写东西时,遇到了时间转换的一些小问题。 首先是 time.Parse(layout, value), go语言提供的layout模版和我个人使用都略有差别, 转换使用很不习惯。 第二就是时区问题, 服务器的时区不一定是符合国内时区的。 时区问题 时区问题可以使用tim...

2019-08-01 14:38:50 3665

原创 jvm内存模型 -- todo

// TODO

2019-01-05 14:12:01 114

原创 一些java知识的碎碎念 -- 不断补充

拦截器和过滤器 :  1 、拦截器是基于java的反射和动态代理,而过滤器是基于函数回调。 2 、拦截器不依赖与servlet容器,过滤器依赖与servlet容器。 3 、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。 4 、拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。 5 、在action的生命周期中,拦截器可以多次被调用,而过滤器只能...

2019-01-05 14:10:32 129

原创 spring IOC的实现 -- todo

// todo  在有道云笔记上 后续会慢慢搬运过来

2019-01-04 17:51:49 107

原创 同步。异步 -- todo

// todo  在有道云笔记上 后续会慢慢搬运过来

2019-01-04 17:50:50 135

原创 jsp内置对象

JSP全名为Java Server Pages,是java服务器页面。 经编译后的.java文件和servlet几乎一致。可在jsp中嵌入java代码和html共同渲染。   JSP 9大内置对象 :      1. request :客户端的请求信息被封装在request对象中, 通过它了解请求,是HttpServletRequest的实例;     2. response :  包含了...

2019-01-04 16:10:02 80

原创 java两种动态代理

主要分为两种 jdk代理和cglib开源库代理   jdk代理主要针对接口,实现InvocationHandler。   cglib主要通过框架修改字节码,创建出代理类的子类实现代理, 对于final类不适用. 实现methodInterceptor接口. cglib包-github   jdk代理 代码demo: public interface ProxyInterface { /...

2019-01-03 21:43:04 199

空空如也

空空如也

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

TA关注的人

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