我和JVM初次约会】的更多相关文章

Things about single men that women hate为何你俘获不了女神的心?If you listen in to a group of single women talking, you might realize that they mostly talk about the men in they meet. What's more, you might realize that they can speak volumes about the things th…
一.前言 经过前面的学习,我们终于进入了虚拟机最后一部分的学习,内存模型.理解内存模型对我们理解虚拟机.正确使用多线程编程提供很大帮助.下面开始正式学习. 二.Java并发基础 在并发编程中存在两个关键问题①线程之间如何通信 ②线程之间如何同步. 2.1 通信 通信是指线程之间以何种机制来交换信息.在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递. 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信. 在消息传递的并发模型里,线程之间…
[尊重原创文章出自:http://www.chepoo.com/java-jvm-command-tools.html] 一.概述 程序运行中经常会遇到各种问题,定位问题时通常需要综合各种信息,如系统日志.堆dump文件.线程dump文件.GC日志等.通过虚拟机监控和诊断工具可以帮忙我们快速获取.分析需要的数据,进而提高问题解决速度. 本文将介绍虚拟机常用监控和问题诊断命令工具的使用方法,主要包含以下工具: jps 显示系统中所有Hotspot虚拟机进程 jstat 收集Hotspot虚拟机各方…
译者语 为加深对JVM的了解和日后查阅时更方便,于是对原文进行翻译.内容是建立在我对JVM的认识的基础上翻译的,加上本人的英语水平有限,若有纰漏请大家指正,谢谢. 原文地址:http://blog.jamesdbloom.com/JVMInternals.html 一.前言 本文将介绍JVM内部架构.下图展示符合Java7规范的JVM内部主要组件. 下面我们将上述组件分为线程相关和线程独立两种类型来介绍. 二.目录 Thread Per Thread program Counter (PC) S…
先发个链接到两位大牛的主页 http://rednaxelafx.iteye.com/               http://icyfenix.iteye.com/ 目录 1)概述 2)编译 3)Class文件结构 4)通过ClassLoader加载Class 5)类执行机制 6)运行时数据区 7)垃圾回收相关 8)多线程 9)故障检测工具及命令 10)其他 1) 概述 1.1) 引用一张官网的图阐明JDK.JRE.JVM.JIT的关系(如下图所示),我们可以看见JDK>JRE>JVM&g…
0.1)本文部分文字转自“深入理解jvm”, 旨在学习 线程安全与锁优化 的基础知识: 0.2)本文知识对于理解 java并发编程非常有用,个人觉得,所以我总结的很详细: [1]概述 [2]线程安全 1)线程安全定义:当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的:(干货——线程安全定义) [2.1]java 语言中的线程安全(干货——java…
深入理解Java内存模型:http://www.cnblogs.com/skywang12345/p/3447546.html http://www.infoq.com/cn/articles/java-memory-model-1 原理 类加载的五个过程:加载.验证.准备.解析.初始化. 双亲委派模型:Bootstrap ClassLoader.Extension ClassLoader.ApplicationClassLoader. 分派:静态分派与动态分派. 1. Java的内存模型以及G…
在我们写Java代码时,大部分情况下是不用关心你New的对象是否被释放掉,或者什么时候被释放掉.因为JVM中有垃圾自动回收机制.在之前的博客中我们聊过Objective-C中的MRC(手动引用计数)以及ARC(自动引用计数)的内存管理方式,下方会对其进行回顾.而目前的JVM的内存回收机制则不是使用的引用计数,而是主要使用的"复制式回收"和"自适应回收". 当然除了上面是这两种算法外,还有其他是算法,下方也将会对其进行介绍.本篇博客,我们先简单聊一下JVM的区域划分,…
这是从网上看到的一套java面试题, 答案只是一个大概, 另外题目质量参差不齐, 斟酌参考(JVM的部分暂时没有答案) 一.Java 基础 JDK 和 JRE 有什么区别? 答: JDK(Java Development Kit)是java开发工具包, 是针对开发人员提供的一套开发环境, 其中包含了jre(程序运行环境,标准类库class文件)以及编译器javac等一系列工具. JRE(Java Runtime Environment)是Java运行时环境, 针对生产环境发布, 其中包含了JVM…
加载是根据特定名称查找类或接口类型的二进制表示(Binary Representation),并由此二进制表示创建类或接口的过程. 加载,就是指去寻找类或接口的过程. 链接是为了让类或接口可以被 Java 虚拟机执行,而将类或接口并入虚拟机运行时状态的过程. 链接,就是将类或接口与JVM链接起来的过程. 类或接口的初始化是指执行类或接口的初始化方法(§ 2.9) 初始化,就是执行方法的过程. Java 虚拟机为每个类型都维护一个常量池. 这里注意关键词「每个类型」,也就是说整型是一个常量池,字符…