02 2018 档案

摘要:单点的ActiveMQ作为企业应用无法满足高可用和集群的需求,所以ActiveMQ提供了master-slave、broker cluster等多种部署方式,但通过分析多种部署方式之后我认为需要将两种部署方式相结合才能满足我们公司分布式和高可用的需求,所以后面就重点将解如何将两种部署方式相结合。 1 阅读全文
posted @ 2018-02-25 23:02 国见比吕 阅读(1145) 评论(0) 推荐(0) 编辑
摘要:为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制。 ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB, 无论使用哪种持久化方式,消息的存储逻辑都是一致的。也就是说发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件、 阅读全文
posted @ 2018-02-25 17:10 国见比吕 阅读(797) 评论(0) 推荐(0) 编辑
摘要:JVM进行垃圾回收时要考虑哪的问题如下: 1.如何判定对象为垃圾对象? 1.引用计数法:在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值就+1,引用失效的时候,计数器的值就-1, 直到计数器的值为0时,就被垃圾回收器回收。这种方式实现简单,判定效率也是比较高的,单是但遇到一种情 阅读全文
posted @ 2018-02-18 23:43 国见比吕 阅读(465) 评论(0) 推荐(0) 编辑
摘要:java虚拟机中指定一个栈内存的引用指向了堆内存中的对象。这样说只是笼统的说法。而指向堆内存中的对象就一定是栈引用所需要的那个对象吗?其实并不定。 这就需要知道对象的访问定位方式有两种: 1.使用句柄。所谓的句柄其实就是堆内存中分配一块内存记录对象实例的指针和对象类型数据的指针,而对象类型数据区域是 阅读全文
posted @ 2018-02-18 17:01 国见比吕 阅读(374) 评论(0) 推荐(0) 编辑
摘要:1.对象的结构有: 1.Header(对象头),其组成主要有两部分: 1.自身运行时的数据(Mark Word),包括: 1.哈希值 2.GC分代年龄。 3.锁状态标志 4。线程所持有的锁 5.偏向线程ID 6.偏向时间戳 自身运行时的数据(Mark Word)说占多少多内存呢?其实是根据32位,6 阅读全文
posted @ 2018-02-18 16:22 国见比吕 阅读(782) 评论(0) 推荐(0) 编辑
摘要:1.对象的创建过程: 1.new 类名 2.根据new的参数在常量池中定位一个类的符号的引用。 3.如果没找到这个符号的引用,说明类还没有被加载。则进行类的加载,解析和初始化 4.虚拟机为对象分配内存(位于堆中)。 5.将分配的内存初始化为零(不包括对象头),即抽象属性初始化为null,基本数据类型 阅读全文
posted @ 2018-02-17 19:14 国见比吕 阅读(326) 评论(0) 推荐(0) 编辑
摘要:1.运行时常量池属于线程共享区中的方法区。 2.运行时常量池用于编译期生成的各种自变量,符号引用,这部分内用将在类加载后接入方法区的运行时常量池中存放。 看如下代码所示,如图: 很明显s1 == s2为true,而s1 == s3为false。 因为基本数据类型和抽象数据类的引用是放在栈帧的局部变量 阅读全文
posted @ 2018-02-16 23:59 国见比吕 阅读(426) 评论(0) 推荐(0) 编辑
摘要:java虚拟机内存管理图如下图所示: 1.线程共享区,是所有的线程所共用的,线程共享区有一下几个组成: 1.方法区: 1.运行时常量池,已经被虚拟机加载的类信息(1.类的版本信息,2.字段,3.方法,4.接口等),常量,静态变量,即时编译器编译后的代码等数据。 2.垃圾回收器也会光顾这个区域,例如常 阅读全文
posted @ 2018-02-13 17:29 国见比吕 阅读(561) 评论(0) 推荐(0) 编辑
摘要:假设我们项目中JVM内存溢出了,大项目中上百万行代码,是很难定位的。因此我们需要借用一个Memory Analyzer工具, 官网地址为:http://www.eclipse.org/downloads/download.php?file=/mat/1.7/rcp/MemoryAnalyzer-1. 阅读全文
posted @ 2018-02-11 17:10 国见比吕 阅读(1228) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示