Java本身是一种设计的非常简单,非常精巧的语言,所以Java背后的原理也很简单,归结起来就是两点: 1、JVM的内存管理 理解了这一点,所有和对象相关的问题统统都能解决 2、JVM Class Loader 理解了这一点,所有和Java相关的配置问题,包括各种App Server的配置,应用的发布 ...
分类:
移动开发 时间:
2016-05-18 10:47:05
阅读次数:
211
最近看了周志明版本的《深入理解Java虚拟机》第一版和第二版,写的很好,收获很多,此处总结一下。 jvm中内存划分: 如上图,一共分为五块,其中: 线程共享区域为: 1、java堆 2、方法区 线程私有区域为: 3、JVM栈 4、本地方法栈 5、程序计数器 各区域作用: 1、java堆: java堆 ...
分类:
其他好文 时间:
2016-05-11 14:47:56
阅读次数:
116
引入
上篇博客《JVM——简介》中主要介绍了JVM的内存模型,思考一下:
为什么要划分堆、栈、方法区等?
为什么把不同种类的数据信息分别存放?
答案可以分为很多很多条,这里就说一个方面,如果我们是如何区分数据的种类的,那就是作用域。比如:堆、方法区是线程共享的,而栈是私有的。
那么管理又包括哪些方面呢?包括创建、存储、回收?这篇博客就来谈谈垃圾回收(Garbage Collectio...
分类:
编程语言 时间:
2016-05-06 14:55:31
阅读次数:
260
原文出处: 海 子 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论J ...
分类:
其他好文 时间:
2016-05-06 00:19:28
阅读次数:
139
一、简介 JVM采用分代垃圾回收。在JVM的内存空间中把堆空间分为年老代和年轻代。将大量(据说是90%以上)创建了没多久就会消亡的对象存储在年轻代,而年老代中存放生命周期长久的实例对象。年轻代中又被分为Eden区(圣经中的伊甸园)、和两个Survivor区。新的对象分配是首先放在Eden区,Surv ...
分类:
其他好文 时间:
2016-05-01 13:28:15
阅读次数:
159
本文描述了JVM的内存模型定义、Java自动内存管理概念、以及Oracle官方虚拟机HotSpot在内存管理方面的实现。...
分类:
其他好文 时间:
2016-04-29 17:05:36
阅读次数:
178
概述 想要进一步掌握Java语言,必须要深入了解一下Java程序的运行环境。本文会对JVM的内存模型、Java内存自动管理机制、以及Oracle官方虚拟机HotSpot在GC方面的实现策略进行大概的梳理。 什么是Java的内存模型? 众所周知,Java程序是运行在JVM上面的,但是不具体指定是哪一款 ...
分类:
其他好文 时间:
2016-04-27 00:14:59
阅读次数:
212
学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?
由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:
如上图所示,首先Java源代码...
分类:
其他好文 时间:
2016-04-22 20:01:03
阅读次数:
131
StackOverflow 这个问题一般是你的程序里头可能是有死循环或递归调用所产生的;可以查看一下你的程序,也可以增大你JVM的内存~~~在Eclipse中JDK的配置中加上 -XX:MaxDirectMemorySize=128 这代码,就行了,默认是64M,增大一倍,我估计行了,还不行的话,就 ...
分类:
其他好文 时间:
2016-04-18 17:18:16
阅读次数:
94
感谢大家对IT十八掌大数据的支持,今天的作业如下:1.将NIO中的Socket通信过程使用图形进行描述和说明。2.画图说明Runtimedataarea的内部结构。3.阐述class的类加载过程。4.反射和内省的异同,以及各自的优缺点。5.阐述jvm中从堆和非堆的角度阐述jvm的内存结构。
分类:
编程语言 时间:
2016-04-02 07:21:45
阅读次数:
218