![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
lqq19860619
这个作者很懒,什么都没留下…
展开
-
JVM闲谈
java中内存分为堆内存和栈内存。 Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数...原创 2011-08-18 22:01:47 · 95 阅读 · 0 评论 -
JVM 四
转自:http://blog.csdn.net/cutesource/article/details/5907418JVM学习笔记(四)------内存调优首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查...原创 2011-08-02 18:22:40 · 58 阅读 · 0 评论 -
JVM
JVM学习笔记(一)------基本结构本文转自:http://blog.csdn.net/cutesource/article/details/5904501 从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别...原创 2011-08-02 14:59:15 · 67 阅读 · 0 评论 -
classloader 三
jvm classLoader architecture :a, Bootstrap ClassLoader/启动类加载器主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作. b, Extension ClassLoader/扩展类加载器主要负责jdk_home/lib/ext目录下的jar包或 -Djava...原创 2011-10-24 23:22:19 · 53 阅读 · 0 评论 -
jvm垃圾回收
Java里的对象并非总是被垃圾回收,或者换句话说: 1、对象可能不被垃圾回收 2、垃圾回收并不等于“析构” 牢记这些,就能远离困扰。这意味着在你不再需要某个对象之前,如里必须执行某些动作,那么你得自已去做。Java并未提供“析构函数”或相似的概念,要做类似的清理工作,必须自已动手创建一个执行清理的普通方法。例如,假设某个对象在创建过程中会将自己绘制...原创 2011-07-31 23:13:50 · 57 阅读 · 0 评论 -
jvm内存存储分析
Java内存分配与管理是Java的核心技术之一,一般Java在内存分配时会涉及到以下区域:◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据◆静态域:存放在对象中用static定义的静态成员◆常量池:存放常量◆非RAM存储:硬盘等永久存储空间...原创 2011-10-11 17:21:27 · 54 阅读 · 0 评论 -
JVM
安装Java开发软件时,默认安装包含两个文件夹,一个JDK(Java开发工具箱),一个JRE(Java运行环境,内含JVM),其中JDK内另含一个JRE。如果只是运行Java程序,则JRE已足够;而JDK则只有开发人员才用到。 一、JVM内存分配设置 1. JVM内存分配设置的参数有四个: -Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他...原创 2011-10-06 21:15:17 · 55 阅读 · 0 评论 -
java序列化
有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。 Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以...原创 2011-10-04 23:48:36 · 54 阅读 · 0 评论 -
JVM优化配置
JVM优化配置《一》OOM这个缩写就是Java程序开发过程中让人最头痛的问题:Out of Memory。在很多开发人员的开发过程中,或多或少的都会遇到这类问题,这类问题定位比较困难,往往需要根据经验来判断可能出现问题的代码。原因主要是 两个:对象没有被释放(多种情况引起,往往是比较隐蔽的引用导致被Hold而无法被回收)。另一...原创 2011-08-20 22:32:12 · 49 阅读 · 0 评论 -
JVM慢慢琢磨
原文:http://www.iteye.com/topic/8218721 JVM简介JVM是我们Javaer的最基本功底了,刚开始学Java的时候,一般都是从“Hello World”开始的,然后会写个复杂点class,然后再找一些开源框架,比如Spring,Hibernate等等,再然后就开发企业级的应用,比如网站、企业内部应用、实...原创 2011-08-20 22:05:59 · 97 阅读 · 0 评论 -
内存分配策略
内存分配策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允 许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求. ...原创 2011-08-20 21:32:48 · 68 阅读 · 0 评论 -
栈 堆
栈栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往堆。取走时,只能从上面一件一件取。堆和取都在顶部进行,底部一般是不动的。栈就是一种类似桶...原创 2011-08-20 19:01:53 · 136 阅读 · 0 评论 -
堆栈区别
原文:http://www.iteye.com/topic/634530 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(stati...原创 2011-08-18 22:23:09 · 58 阅读 · 0 评论 -
java诊断工具
jstack -- 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung...原创 2013-04-01 19:12:21 · 162 阅读 · 0 评论