Loading

随笔分类 -  Java

摘要:[TOC] BenchMark介绍 最近大佬叫我做下Benchmark,之前一直没接触过,顺便学习一波。 BenchMark 又叫做基准测试,主要用来测试一些方法的性能,可以根据不同的参数以不同的单位进行计算(例如可以使用吞吐量为单位,也可以使用平均时间作为单位,在 BenchmarkMode 里面 阅读全文
posted @ 2018-07-23 09:27 Shadowdsp 阅读(9022) 评论(1) 推荐(6)
摘要:[TOC] RabbitMQ简介 "wikipedia" RabbitMQ在CentOS上安装 "csdn blog" 配置文件 application.properties pom.xml 我是通过maven来构建项目的。因此在一个SpringBoot项目的基础上还需要添加一个依赖。 实践 概述 阅读全文
posted @ 2018-05-17 00:10 Shadowdsp 阅读(5356) 评论(6) 推荐(1)
摘要:[TOC] 判断对象是否死亡 引用计数器算法 给对象添加一个引用计数器,每当有地方引用它,计数器值就加1;当引用失效时,计数器值减1;计数器为0的对象就不可能再被使用。 缺点 是很难解决对象之间相互循环引用的问题。 可达性分析算法 通过一系列称为 “GC Roots” 的对象作为起始点,从这些节点开 阅读全文
posted @ 2018-03-05 14:58 Shadowdsp 阅读(700) 评论(0) 推荐(0)
摘要:[TOC] 简介 由于HashMap是非线程安全的,而且HashTable和Collections.synchronizedMap()的效率很低(基本上是对读写操作加锁,一个线程在使用,其他线程必须等待)。因此可以使用并发安全的ConcurrentHashMap。 ConcurrentHashMap 阅读全文
posted @ 2018-02-23 17:43 Shadowdsp 阅读(443) 评论(0) 推荐(0)
摘要:[TOC] 简介 它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数 阅读全文
posted @ 2018-02-21 22:28 Shadowdsp 阅读(612) 评论(0) 推荐(0)
摘要:[TOC] 概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 动态加载和动态连接 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的。 类加载的时机 类的生命周期 类 阅读全文
posted @ 2018-02-03 21:44 Shadowdsp 阅读(356) 评论(0) 推荐(0)
摘要:Java动态代理 为什么使用动态代理 当需要对某个类的某个方法进行修饰(增强)的时候,可以使用继承、装饰者模式和动态代理。 三种方式局限性: 1. 继承:增强的对象不能改变,增强的内容不能改变。 2. 装饰者模式:增强的对象不能改变,增强的内容能改变。 3. 动态代理:增强的对象可以改变,增强的内容 阅读全文
posted @ 2017-12-03 10:20 Shadowdsp 阅读(219) 评论(0) 推荐(0)