第一步:分配内存 现在知道new出来的对象是在java堆里的了,那是具体是怎么在java堆里找到一块合适的空地儿的呢 指针碰撞 假如堆里的空间是规整的,用过的内存放一边,没用过的放在另一边,两者中间有个明确的分界点,那就…
标签:java虚拟机
《深入理解JAVA虚拟机》第二版 阅读笔记4 垃圾收集与内存分配(2)
上一篇说到的垃圾收集算法是方法论,具体垃圾收集时如何利用这些算法就要看各个JVM的具体实现了,我们肯定主要讨论HotSpot JVM的实现,首先HotSpot JVM使用了分代收集的思想,并实现了多种收集器,有的收集器适…
4.《深入理解Java虚拟机》对象是否可回收?
接下来的几篇博文就讨论如下问题: 1. 哪些内存需要回收(Java堆和方法去区) 2. 什么时候回收; 3. 如何回收。 对象已死吗? Java堆里面几乎存放了所有的对象,垃圾收集器在对堆进行回收前,第一件事情就是确定哪…
6.《深入理解Java虚拟机》HotSpot 的算法实现
前面的blog在理论上介绍了对象存活判定算法和垃圾收集算法,然而在HotSpot虚拟机上实现这些算法时必须对算法的执行效率有足够严格的考量,才能保证虚拟机高效运行。 1.可达性分析算法中的枚举根节点 在对象存活算法的可达…
8.《深入理解Java虚拟机》内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别
内存溢出和内存泄露的区别 内存溢出:指的是程序在申请内存的时候,没有足够大的空间可以分配了。 内存泄露:指的是程序在申请内存之后,没有办法释放掉已经申请到内存,它始终占用着内存,即被分配的对象可达但无用。内存泄露一般都是…
13.《深入理解Java虚拟机》Java与线程
Java与线程 在Java里面的并发大多与多线程脱离不了关系; 线程的实现 我们知道,线程是比进程更加轻量级的调度执行单位。各个线程可以共享进程资源,又可以独立调度。 在Java的Thread类中,我们观察源码可以发现,…
深入理解Java虚拟机之基础篇
前言:本文为作者学习深入理解JAVA虚拟机一书的一个总结,以供日后复习查阅。本文基于jdk1.8通过结合书中内容以及个人的理解来完成。本文为一个JVM的入门文章不会涵盖到书中的所有内…
[连载] 深入理解Java虚拟机(JVM高级特性与最佳实践)之 【走近Java】
连载目录 : http://blog.csdn.net/u010903284/article/details/53117958 1.1 Java概述: …
《深入理解Java虚拟机:Jvm高级特性与最佳实践》第二版资源下载
链接:http://pan.baidu.com/s/1nvDVxsX 密码:cmxy
深入理解Java虚拟机笔记(1、2、3章)
自己絮絮叨叨的一些废话 这本书真是神作,很少读过国内作者写的如此精确易懂的技术书籍。 我感觉,作为一名Java程序员,是一定要知道、了解进而掌握JVM的,毕竟是Java知识体系的核心所在。然而,刚刚接触Java的时候,一…
深入理解Java虚拟机(一)--- Java 与 JVM
文章目录 Java 特性 JVM 特性 Java语言与JVM的关系 Java技术体系 四种体系平台 Java 特性 1.结构严谨,面向对象编程语言 2.跨平台性 3.较安全的内存管理和访问机制(避免了绝大部分内存泄漏和指…
深入理解Java虚拟机(二) --- JVM内存管理
文章目录 运行时的数据区域 一.程序计数器 二.Java虚拟机栈 局部变量表: 操作数栈 三.本地方法栈 四.Java堆 五.方法区(非堆) 运行时常量池 直接内存 运行时的数据区域 一.程序计数器 目的:作为当前线程所…