2018年12月27日

记录一次dubbo不能正常抛出特定异常

摘要:BUG场景 今天同事的代码中出现一个问题,让我帮忙排查一下。原代码大致如下 dubbo服务消费者: dubbo服务提供者: 问了同事的意图,他希望如果提供方抛出PaymentException的时候,服务方能够捕获到对应PaymentException。然而,在上面的代码中,消费者捕获不到Payme 阅读全文

posted @ 2018-12-27 16:54 阿姆斯特朗回旋炮 阅读(1444) 评论(0) 推荐(0) 编辑

2018年12月12日

JAVA 类加载机制学习笔记

摘要:JAVA 类生命周期 如上图所示,Java类的生命周期如图所示,分别为加载、验证、准备、解析、初始化、使用、卸载。其中验证、准备、解析这三个步骤统称为链接。 加载:JVM根据全限定名来获取一段二进制字节流,将二进制流转化为方法区的运行时数据结构,在内存中生成一个代表该类的Java.lang.Clas 阅读全文

posted @ 2018-12-12 16:37 阿姆斯特朗回旋炮 阅读(112) 评论(0) 推荐(0) 编辑

2018年11月22日

JAVA 垃圾回收读书笔记

摘要:对象已死 在JAVA代码运行中,会不停的创建对象,因为内存空间不是无限的,Java虚拟机必须不停的回收无用的数据空间。那么虚拟机是怎么判断对象空间是需要被回收的呢,也就是怎么样的数据算是垃圾数据呢? 引用计数法 引用计数法是指给没一个对象中添加一个引用计数器,每当一个地方引用了该对象,就让该对象的引 阅读全文

posted @ 2018-11-22 18:04 阿姆斯特朗回旋炮 阅读(142) 评论(0) 推荐(0) 编辑

2018年8月21日

java内存模型JMM理解整理

摘要:什么是JMM JMM即为JAVA 内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在 阅读全文

posted @ 2018-08-21 10:41 阿姆斯特朗回旋炮 阅读(16530) 评论(2) 推荐(4) 编辑

2018年8月6日

java.util.concurrent中的几种同步工具类

摘要:java.util.concurrent并发包中提供了一系列的的同步工具类,这些基础类不管是否能在项目中使用到,了解一下使用方法和原理对java程序员来说都是有必要的。博主在看《java并发编程实战》这本书中提到了其中几个工具类,本文就对这些类进行简单的描述。 CyclicBarrier(栅栏) 4 阅读全文

posted @ 2018-08-06 10:08 阿姆斯特朗回旋炮 阅读(1459) 评论(0) 推荐(0) 编辑

2018年7月18日

synchronized ReentrantLock 比较分析

摘要:在编写多线程代码的时候,对于不允许并发的代码,很多需要加锁进行处理。在进行加锁处理时候,synchronized作为java的内置锁,同时也是java关键字,最为被人熟知,即使是最初级的java程序员,只要知道java并发处理的,都会知道syschronized。 java5.0之后,java提供了 阅读全文

posted @ 2018-07-18 19:17 阿姆斯特朗回旋炮 阅读(799) 评论(0) 推荐(1) 编辑

2018年6月29日

一次Spring Transactional嵌套事务使用不同的rollbackFor的分析

摘要:起因: 项目期间由于一次异常回滚问题,发现自己在事务知识方面知识的遗漏,趁着这次机会,做了几次rollbackFor的测试。 测试: 现在有两个事务,事务oute包含事务Inner。事务A回滚规则是当事务抛出TestException,其中TestException继承RunTimeExceptio 阅读全文

posted @ 2018-06-29 18:03 阿姆斯特朗回旋炮 阅读(6719) 评论(1) 推荐(1) 编辑

2018年5月15日

ThreadPoolExecutor 学习笔记

摘要:线程池的奥义 在开发程序的过程中,很多时候我们会遇到遇到批量执行任务的场景,当各个具体任务之间互相独立并不依赖其他任务的时候,我们会考虑使用并发的方式,将各个任务分散到不同的线程中进行执行来提高任务的执行效率。 我们会想到为每个任务都分配一个线程,但是这样的做法存在很大的问题: 1、资源消耗:首先当 阅读全文

posted @ 2018-05-15 15:45 阿姆斯特朗回旋炮 阅读(826) 评论(0) 推荐(0) 编辑

2018年4月4日

MySQL InnoDB锁机制

摘要:概述: 锁机制在程序中是最常用的机制之一,当一个程序需要多线程并行访问同一资源时,为了避免一致性问题,通常采用锁机制来处理。在数据库的操作中也有相同的问题,当两个线程同时对一条数据进行操作,为了保证数据的一致性,就需要数据库的锁机制。每种数据库的锁机制都自己的实现方式,mysql作为一款工作中经常遇 阅读全文

posted @ 2018-04-04 10:24 阿姆斯特朗回旋炮 阅读(7961) 评论(1) 推荐(1) 编辑

2018年3月21日

ThreadLocal简析

摘要:简介 ThreadLocal在Java多线程开发中常见的一个类,在面试中也经见的问题,比如ThreadLocal的作用是什么,ThreadLocal的实现原理是什么等等。ThreadLocal是java中一个类,用于实现变量在多线程并发环境下维持线程的封闭性(封闭指的是可变对象对于其他线程是不可访问 阅读全文

posted @ 2018-03-21 11:33 阿姆斯特朗回旋炮 阅读(149) 评论(0) 推荐(0) 编辑

导航