在内存管理方面,Java相对于C和C++的区别在于Java具有内存动态分配以及垃圾收集技术,但平时我们很少去关注JVM的内存结构以及GC,在出现内存泄露或溢出方面的问题,排查工作将变得异常艰难。 1. 运行时数据区域 Java虚拟机在执行Java程序时会将其管理的内存按照用于划分为...
分类:
编程语言 时间:
2015-03-19 17:58:51
阅读次数:
231
使用JAVA已经快三年了,但说来惭愧,一直以来认为Java就是Java语言本身,最多再包括一个JVM,对于整个Java的体系结构还是不甚明了,现在有时间把《深入理解Java虚拟机》这本书读了一下,也算解答了自己很多的疑惑。 JAVA不仅仅是一门语言,而是由一系列软件和规范形成的技术体系,我们...
分类:
编程语言 时间:
2015-03-18 15:34:31
阅读次数:
148
说明:本文的内容是看了《深入理解Java虚拟机:JVM高级特性与最佳实践》后为加印象和理解,便记录了重要的内容。 1 ?开门见山 以前曾经看到过一个java的面试题,当时觉得此题很简单,可是自己把代码运行起来,可是结...
分类:
编程语言 时间:
2015-03-17 18:23:55
阅读次数:
229
一、垃圾收集Java虚拟机的堆里存放着正在运行的java程序所创建的所有对象。当一个对象不再被程序引用时,它所使用的堆空间可以被回收,以便后续的新对象所使用。垃圾收集器必须能够断定哪些对象是不再被引用的,并且能够把它们所占据的堆空间释放出来。在释放不再被引用的对象的过程中,垃圾收集器运行将要被释放的对象的终结方法(finalizer)。除了释放不再被引用的对象,垃圾收集器还要处理堆碎片。在一个虚拟内...
分类:
编程语言 时间:
2015-03-16 12:56:34
阅读次数:
168
JDK是支持Java程序开发的最小环境集,JRE是支持Java程序运行的标准环境,JRE是JDK的一部分。 Java1.0版本诞生于1995年,其使用的虚拟机是SunClassiscVM,这款虚拟机已经不再使用。JDK1.3时,HotSpotVM成为了默认的虚拟机。其他较为出名的Java虚拟机...
分类:
编程语言 时间:
2015-03-14 13:41:55
阅读次数:
617
听上去很高端,其实一般自定义类加载器不需要用户去实现解析的过程,只要负责实现获取类对应的.class字节流部分就ok了,摘录深入理解Java虚拟机的一段话虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何...
分类:
编程语言 时间:
2015-03-08 21:22:11
阅读次数:
154
参考:深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)“内存模型”一词,可以理解为在特定的操作协议下,对特定的内存或高速缓存进行读写访问的过程抽象。Java内存模型(Java Memory Model, JMM)主内存与工作内存每条线程还有自己的工作内存,线程的工作内存中保存了被该线程使用...
分类:
编程语言 时间:
2015-03-06 20:43:30
阅读次数:
268
第4章 虚拟机性能监控与故障处理工具//学习了虚拟机内存分配与回收技术的理论,还要掌握如何在实际工作中应用。//介绍了随JDK发布的6个命令行工具和2个可视化的故障处理工具。1.JDK的命令行工具JDK的bin目录下有许多工具,可以用于监视虚拟机和故障处理。很多小工具的命名都类似Unix命令,比如j...
分类:
编程语言 时间:
2015-03-04 14:35:16
阅读次数:
187
第一部分 走进Java第二部分 自动内存管理机制第2章 垃圾收集器与内存分配策略1.Java虚拟机在执行java程序时会把它锁管理的内存会分为若干个不同的数据区域,这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是在以来用户线程的启动和结束而建立和销毁。根...
分类:
编程语言 时间:
2015-02-27 15:04:10
阅读次数:
144
上班第一天,把年前本应该写的计划补下(什么时候能做到日事日清呢)清单:JAVAEffective JavaHead First设计模式Thinking in java 4th重构 改善既有代码的设计深入理解Java虚拟机:JVM高级特性与最佳实践Springspring in actionMongo...
分类:
其他好文 时间:
2015-02-25 12:56:09
阅读次数:
129