JVM-初见】的更多相关文章

本文是听咕泡XX公开课视频整理的笔记,较书本更为总结,感谢. 计算机模型(汇编知识):数据集(数据).指令集(操作指令,+-等).控制集(分支循环) JVM运行时的数据区: 程序计数器(每个线程都有): 定义:存储指向当前线程正在运行的指令的地址.行号(用来记录线程切换后寻回地址) 执行native方法时程序计数器记录为空. 虚拟机栈(栈的大小不会被限制,XXS代表栈的深度): 定义:指向当前线程运行方法时所需要的数据.指令.返回地址. 线程执行方法时,需要出栈入栈,(一个栈是一条线程运行时需要…
Photo by Janke Laskowski on Unsplash 参考书籍:<Flume构建高可用.可扩展的海量日志采集系统> --Hari Shreedharan 著 以下简称"参考书籍",文中部分资料和图片会标注引用自书中.官方文档简称"官文". 文章为个人从零开始学习记录,如有错误,还请不吝赐教. Flume 初见 ### · 简介 ### Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,可…
本PPT从JVM体系结构概述.GC算法.Hotspot内存管理.Hotspot垃圾回收器.调优和监控工具六大方面进行讲述.(内嵌iframe,建议使用电脑浏览) 好东西当然要分享,PPT已上传可供下载(点此下载),另外良心推荐阅读<深入理解Java虚拟机JVM高级特性与最佳实践.pdf>(点此下载).…
原文地址:http://blog.csdn.net/dream_broken/article/details/49759043 想了解下某个Java项目的运行时jvm的情况,可以使用一些监控工具,比如jdk的bin下就提供了很多工具. 比如,本地运行一个程序,让它死循环 while(true){ try { Thread.sleep(10*1000); } catch (Exception e) { } } 然后,点击启动jconsole.exe 可以发现,jconsole.exe可以连接本地,…
从诞生至今,20多年过去,Java至今仍是使用最为广泛的语言.这仰赖于Java提供的各种技术和特性,让开发人员能优雅的编写高效的程序.今天我们就来说说Java的一项基本但非常重要的技术内存管理 了解C语言的同学都知道,在C语言中内存的开辟和释放都是由我们自己来管理的,每一个new操作都要对于一个delete操作,否则就会参数内存泄漏和溢出的问题,导致非常槽糕的后果.但在Java开发过程中,则完全不需要担心这个问题.因为jvm提供了自动内存管理的机制.内存管理的工作由jvm帮我们完成.这样我们就不…
JVM的类加载机制就是:JVM把描述类的class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被JVM直接使用的Java类型 ClassLoader JVM中的ClassLoader子系统就是类加载系统,Classloader子系统根据给定的全限定名类名(如java.lang.Object)来装载class文件的内容到运行时数据区中的方法区.Java程序员可以继承java.lang.ClassLoader类来编写自己的Class loader. 每个类都有一个Class对象,…
finalize();(不建议使用,代价高,不确定性大) 如果你在一个类中覆写了finalize()方法, 那么你可以在第一次被GC的时候,挽救一个你想挽救的对象,让其不被回收,但只能挽救一次. GC内存回收中的 new generation 新生代 tenured generation 老年代 Minor GC新生代GC Major GC/Full GC 老年代GC 对象晋升为老年代的年龄阀值,可以通过参数  -XX:MaxTenuringThreshold设置(每熬过一次Minor GC,年…
参考资料 该文中的内容来源于 Oracle 的官方文档 Java SE Tools Reference .Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以直接找到这个总入口 Java SE 8 Documentation ,想阅读什么就点什么.本博客不定期从 Oracle 官网搬砖. 前言 在 Linux 中使用 Java,我一般都是直接使用 Linux 发行版自带的软件包,一个命令即可搞定 JDK 的安装.但是 Linux 发行版中自带的 JDK 往往是…
在上面一节我们分析了JobTracker调用JobQueueTaskScheduler进行任务分配,JobQueueTaskScheduler又调用JobInProgress按照一定顺序查找任务的流程,获得了任务之后,将任务封装为TaskTrackerAction数组返回的整个过程.TaskTracker通过心跳响应接收到了这个数组.本节我们继续分析,TaskTracker拿到了这个数组之后,如何对任务进行处理的. 1,TaskTracker在其方法offerService中,将得到的任务加入队…
尝试kotlin的起因 因为各种原因(版权,人员招聘),公司的技术体系从c#转到了java,我花了大概两周的时间来上手java,发现java的语法还是非常简单的,基本看着代码就知道什么意思.学习java的过程中,大部分时间都花费在了maven配置,理解spring的ioc上面. 学习的一段时间,我对java的感觉也正如前人的总结,稀烂的语法,完美的生态.spring在更高层面去约束你的代码设计,测试,事物,分布式,lucene,hadoop...jvm世界有太多的财富等着我去挖掘.但,我实在是不…