根据《深入理解java虚拟机》这本书总结 书中有一段话,大体的意思是:java和c之间有一堵墙,墙里的人想出来,墙外的人想进去,这堵墙就是垃圾回收机制了。 一、为什么要理解垃圾回收机制? java的垃圾回收,是自动完成的,一般情况下并不需要去关注,但是当遇到一些并发量、数据量比较大的时候,可能就会出 ...
分类:
其他好文 时间:
2017-07-31 17:24:04
阅读次数:
122
此处内容均是作者参考《深入理解Java虚拟机》--周志明著 第二章内容所总结 一、java内存区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则依赖用户线程的启动和结 ...
分类:
编程语言 时间:
2017-07-27 21:18:07
阅读次数:
253
(根据《深入理解java虚拟机》这本书总结) 本文主要解释jvm内存模型,以及各个部分的作用。都是自己总结的给自己看的通俗语言,未用专业术语的见谅。 一、为什么要了解jvm内存模型? 在了解一个类的编译-加载-内存分配-初始化所有过程前,要先了解jvm的内存模型。这样对整个java体系可能会更加便于 ...
分类:
其他好文 时间:
2017-07-26 23:39:01
阅读次数:
166
本内容由《深入理解java虚拟机》的部分读书笔记整理而成,本读者计划连载。 通过如下图和文字介绍来了解几个运行时数据区的概念。 方法区:它是各个线程共享的区域,用于内存已被VM加载的类信息、常量、静态变量、即时编译器编译的代码等数据。JVM规范对这个区域的限制很宽松,如同堆一样不需要连续的内存、可选 ...
分类:
编程语言 时间:
2017-07-26 23:33:17
阅读次数:
261
(根据《深入理解java虚拟机》这本书总结) 将new一个对象的时候会经历1加载类信息-2分配堆内存-3分配内存置零值-4实例必要信息设置,这几个过程。 那么这个实例对于分配在堆中的内存,由哪些部分组成呢? 一共三部分: 1、对象头信息:可以分为两部分 (1)存储对象自身的运行时数据,包括hash值 ...
分类:
其他好文 时间:
2017-07-26 23:31:03
阅读次数:
198
说明:本文的内容是看了《深入理解Java虚拟机:JVM高级特性与最佳实践》后为加印象和理解,便记录了重要的内容。 1 开门见山 以前曾经看到过一个java的面试题,当时觉得此题很简单,可是自己把代码运行起来,可是结果并不是自己想象的那样。题目如下: 错误答案 count1=1 count2=1 正确 ...
分类:
编程语言 时间:
2017-07-24 13:05:38
阅读次数:
226
图解 Java 内存区域及内存溢出异常 在阅读 《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版) 》后,为了加深对 Java 内存区域的印象及理解,特意做成了思维导图。 名词解释 线程共享数据区域 直接内存 并不是虚拟机运行时数据区的一部分,也不是 Java 虚拟机规范中定义的内存区。N ...
分类:
编程语言 时间:
2017-07-22 18:11:10
阅读次数:
164
《深入理解Java虚拟机:JVM高级特性与最佳实践》作者是周志明 《Java多线程编程核心技术》作者高洪岩 《Effective Java中文版》的作者是Joshua Bloch 《大型网站技术架构 核心原理与案例分析》的作者是李智慧 《从Paxos到ZooKeeper 分布式一致性原理与实践》,作 ...
分类:
其他好文 时间:
2017-07-13 10:48:29
阅读次数:
114
在读: Java 核心技术:卷一 Spring In Action(Spring 实战) 第四版 重构:改善既有代码的设计 未读: Java 编程思想: 深入理解 Java 虚拟机: Head First 设计模式: Java 并发编程实践 以此作为自己的书单,时刻提醒自己需要学习!!! ...
分类:
其他好文 时间:
2017-07-13 10:48:15
阅读次数:
146
Java虚拟机在操作系统层面会先尽一切可能在虚拟机层面上解决竞争关系,尽可能避免真实的竞争发生。同时,在竞争不激烈的场合,也会试图消除不必要的竞争。实现这些手段的方法包括:偏向锁、轻量级锁、自旋锁、锁消除、锁膨胀等 1. 偏向锁 偏向锁是JDK1.6提出的一种锁优化方式。其核心思想是:如果程序没有竞 ...
分类:
编程语言 时间:
2017-07-12 23:38:30
阅读次数:
329