学习笔记
文章平均质量分 71
bhtj27
这个作者很懒,什么都没留下…
展开
-
JMS学习笔记(1)- 基本概念
参照:http://docs.oracle.com/javaee/6/tutorial/doc/bncdx.html1.JMS整体结构:2.JMS两种消息模型:(1)point-to-point模型,有三个特点如下:架构示意图如下(2)Public/Subscribe模型,两个特点如下:架构示意图如下:原创 2017-07-26 10:50:22 · 269 阅读 · 0 评论 -
JVM学习笔记(7)-字节码执行引擎
1.运行时栈帧栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧中存储了方法的局部变量表、操作数栈、动态链接和方法的返回地址等信息。每一个方法从调用开始到执行完成,都对应一个栈帧在虚拟机里面的入栈和出栈在编译的时候栈帧需要多大的局部变量表、多深的操作数栈都已经确定了,并写入到方法表的Code属性中。一个线程中的方法调用链原创 2017-08-05 11:38:13 · 271 阅读 · 1 评论 -
JVM学习笔记(6)-类加载机制
1.类的生命周期虚拟机吧描述类的数据从Class文件加载到内存,并对数据进行校验、转换、解析、初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。与其他在编译时进行连接工作的语言不同,java语言中,类型的加载、连接、初始化都是在程序运行期间完成的,故java可以动态加载和动态连接的特点类从被加载到虚拟机内存中开始,到卸载为止,整个生命原创 2017-08-04 10:34:40 · 209 阅读 · 0 评论 -
JVM学习笔记(5)-JVM参数
1.调试相关参数-XX:+PrintGCDetails 打印GC详细信息-XX:+PrintGC 打印GC-XX:+PrintHeapAtGC 每次GC前后打印堆信息-XX:+PrintClassHistogram 按下ctrl+break后输出类统计信息-XX:+OnOutOfMemoryError 虚拟机内存溢出时指定指定的命令-XX:+OnErro原创 2017-08-02 22:08:17 · 231 阅读 · 0 评论 -
JVM学习笔记(4)-内存分配与回收策略
在这里由于我的jdk环境是1.8的,JVM内存布局与1.7有很大的不同:jdk1.7以及之前的java类信息,静态变量,常量池均保存在永久代中(Perm),类的元数据和静态变量在类加载的时候分配到 Perm,当类被卸载的时候垃圾收集器从 Perm 处理掉类的元数据和静态变量。当然常量池的东西也会在 Perm 垃圾收集的时候进行处理。JDK 1.8 的对 JVM 架构的改造将类元数据放到本地原创 2017-07-31 16:10:18 · 230 阅读 · 0 评论 -
JVM学习笔记(3)-垃圾收集
1.GC回收的是方法区和堆区的内存空间jvm把内存区域分为5个部分,线程共有的方法区和堆,线程私有的虚拟机栈、本地方法栈、程序计数器线程私有的内存空间在线程消亡的时候内存自动回收,垃圾回收(GC:Garbage Collection)的主要是指线程共有的方法区和堆区部分GC在回收前首先要判断对象是否存活2.判断对象是否存活(1)引用计数法:一种古老的判断对象是否存活原创 2017-07-30 17:51:00 · 217 阅读 · 0 评论 -
JVM学习笔记(1)-虚拟机内存
1.Java内存分布Java程序运行的时候会向操作系统申请内存,这部分内存称为虚拟机内存,这部分内存包含以下几个区域线程共有部分有:方法区和堆,这里是主要涉及到多线程同步问题的区域线程私有部分:虚拟机栈,本地方法栈,程序计数器(1)方法区:线程共享,主要用来存放虚拟机加载的类信息、常量、静态变量。也称之为永久区,设置参数有 -XX:MaxPermSize原创 2017-07-30 11:25:18 · 220 阅读 · 0 评论