- 博客(19)
- 资源 (2)
- 收藏
- 关注
原创 java8元注解解析
@Target该注解用来约束注解的作用域,ElementType为其作用域的枚举类。若未指定作用域,则默认可以用于任何元素上。也可以多个值使用,如@Target(value={CONSTRUCTOR, FIELDE})。Target注解如下:@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.ANNOTATI...
2020-04-30 18:24:00
510
原创 ArrayBlockingQueue源码解析,付出入队流程图
概述ArrayBlockingQueue是一个基于数组实现的有界阻塞队列。遵循先进先出FIFO原则对元素进行排序,元素都是从尾部入队,头部出队。1、数据结构基于数组的阻塞队列,必须设置长度,元素不允许为空,先进先出。2、原理ArrayBlockingQueue,读写用一把锁,也就意味着所有加锁操作都是互斥的。当队列已满时,put线程会阻塞,当队列为空时,take线程会阻塞。3、源码解读...
2020-02-26 14:01:19
525
原创 LinkedBlockingQueue源码解读,附出队入队详细流程图
概述LinkedBlockingQue是一个基于链表实现的可设置容量的无界(最大值Integer.MAX_VALUE)阻塞队列。队头的元素是插入时间最长的,队尾的元素是最新插入的。新的元素将会被插入到队列的尾部。1、数据结构基于链表,所以队列中至少有一个空元素,头结点不含元素。2、原理LinkedBlockingQueue中有两把锁,takeLock和putLock,即读写各一把锁。这就...
2020-02-26 01:51:10
932
原创 Centos7、Erlang-21.3、RabbitMQ-3.8.0安装
1.购买阿里云 centos 7.x2.安装依赖**第一步:**执行命令yum -y install wget,然后会出现**第二步:**安装依赖 yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto socat3、erlang安装第一步:下载epel-release①服务器直接下载(速度慢): wg...
2020-02-23 10:48:34
3127
原创 JMM(Java Memory Model)-java内存模型(一)
写在前面在看这篇博客之前,请先把JVM运行时内存模型忘掉。因为两者不是一个维度的划分。本篇进队JMM做一个基本的介绍,基于一些文章和资料,写一下自己对于这一概念的理解。后续会根据多线程来做详解。如有误,请指正。文中没有涉及对计算机乱序执行优化部分的介绍,放在后面研究后再做总结。概述在讲JMM之前,先看一下java虚拟机和计算机如何进行交互。由上图可以看到java虚拟机并没有跟计算机硬件...
2020-02-20 19:36:46
333
原创 Iterator迭代器
概述简单来说,Iterator是集合的迭代器,就是用来遍历集合的。实际上迭代器是一种模式,它可以使得遍历序列方式和被遍历对象分离。即我们无需关注该序列的底层结构是什么样子,只要拿到迭代器对象就可以遍历该序列。1 Iterable接口及其子接口1.1 Iterator接口既然是用来遍历集合的,那么Iterator提供了那些方法呢?如下图如图,Iterator接口提供了4个方法:bo...
2020-02-19 15:35:33
117
原创 equals方法深入解析
写在前面最初接触java的时候,都会有涉及equals和==的区别,最经典的案例就是用String类型的数据作类比。最常见的说法就是:equals比较的是值,==比较的是引用地址。首先这种说法是错误的,也有人认为这种说法是不完全正确的(至少对于String这个类来说这种说法是没问题的)。之所以说这种说法是错误的,是因为本人真的觉得这个总结实在是误人子弟。1、equals和==1.1、...
2020-02-18 17:43:48
2237
原创 java IDL、RMI、 RMI-IIOP、JMS概念详解
写在前面本文仅提供了java IDL、RMI、 RMI-IIOP、JMS相关的概念解释,没有案例演示。后续会专门针对实现来做展开。待整理:https://paper.seebug.org/1105/1、Java IDLJava IDL(Interface Definition Language)可实现网络上不同平台上的对象相互之间的交互,该技术基于通用对象请求代理体系结构CORBA规范说...
2020-02-17 13:26:13
659
原创 Corba概念(GIOP、IIOP、IOR、ORB、IDL)
写在前面本文转自 Corba概念(GIOP、IIOP、IOR、ORB、IDL).防止哪天找不到了,所以自己做了个备份。CORBA公用对象请求代理(调度)程序体系结构(Common Object Request Broker Architecture),缩写为 CORBA,是对象管理组织(Object Management Group)对应当今快速增长的软硬件的协同工作能力的要求而提出的方案...
2020-02-17 12:03:03
1201
原创 jconsole 、VisualVM、JMC/JFR性能调优
前言两款都是JDK自带的性能分析工具。所以放在一起研究,目前仅关注了其启动方法,具体内容待补充。1、jconsoleJava 5开始引入,JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。也可在本地cmd直接运行jconsole命令。待研究。2、VisualVMVisualVM 可以说是JConsole的的升级版。也是一款性能分析器。对...
2020-02-16 22:55:45
840
原创 jdeps( Java class dependency analyzer)- Java类依赖分析器详解
写在前面关于jdeps如果想要做详细的了解,还是需要看Oracle官网的介绍。访问入口如下:jdeps.本文内容均为自己阅读文档后自己总结的,后续如果发现其他好玩的,会继续更新。当然,如果其中有错误,还请指正。1、jdeps简介Java class dependency analyzer,Java类依赖分析器。在cmd中,执行jdeps ,系统会提示jdeps的所有用法(如下图):...
2020-02-16 20:57:17
2415
原创 javac 和 javap工具详解
写在前面由于javac和javap是两个相反的过程,所以放在一起做分析。关于javac和javap如果想要做详细的了解,还是需要看Oracle官网的介绍。访问入口如下:javac.javap.本文内容均为自己阅读文档后自己总结的,如有错误,还请指正。1、javac 和 javap简介javac:接收由Java语言规范(JLS)定义的源代码(.java后缀的源文件),并生成由J...
2020-02-16 20:16:47
2546
原创 java 常用的字节码指令集
前言文章转自:https://blog.youkuaiyun.com/github_35983163/article/details/52945845以防哪天找不到了,就自己做了个备份。常用字节码指令集常量入栈指令指令码操作码(助记符)操作数描述(栈指操作数栈)0x01aconst_null null值入栈。0x02...
2020-02-15 23:47:51
314
原创 JVM(二)- 类的加载过程、类加载器(付示例代码)
一、类的加载过程类从加载到内存中开始,到卸载出内存位置,为类的生命周期。包括加载(loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initiazation)、使用(Using)、卸载(Unloading)7个阶段。其中验证、准备、连接统称为连接(linking)。其中加载、验证、准备、初始化和卸载这5个阶段的顺序是...
2020-02-12 17:01:42
274
1
原创 JVM(一)- 组成部分及详解
一、JVM简介JVM全称Java Virtual Machine ,Java虚拟机,也就是在计算机上虚拟一个计算机,且运行于内存中。计算机的基本构成:运算器、控制器、存储器、输入和输出设备,JVM也有同样成套的元素。为了达到“一次编译,随处运行”,JVM根据不同的CPU,翻译成不同的机器语言,因此java的命令集随处都可以运行。1、 JVM与计算机的交互JVM与计算机的交互如图:从图中可...
2020-02-11 16:54:47
1844
1
转载 数据库读写分离(oracle)
随着一个网站的业务不断扩展,数据不断增加,数据库的压力也会越来越大,对数据库或者SQL的基本优化可能达不到最终的效果,我们可以采用读写分离的策略来改变现状。读写分离现在被大量应用于很多大型网站,这个技术也不足为奇了。ebay就做得非常好。ebay用的是oracle,听说是用Quest Share Plex 来实现主从复制数据。 读写分离简单的说是把对数据库读和写的操作分开对应不
2014-12-01 16:49:05
5057
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人