在讲解String之前,我们先了解一下Java的内存结构。一、Java内存模型按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。 JVM主要管理两种类型内存:堆和非堆,堆内存(HeapMemory)是在 Java 虚拟机启动时创建,非堆内存(Non....
分类:
编程语言 时间:
2014-09-17 13:35:42
阅读次数:
323
《深入理解java虚拟机》一书中介绍到jvm的内存溢出情况,对理解jvm的自动内存管理机制有一定帮助,下面通过几个实例来进行说明。 java虚拟机的规范描述中,除了程序计数器外,java堆,虚拟机栈,本地方法区等运行时区都会发生outOfMemoryError的可能。 《1》java堆溢出 ...
分类:
其他好文 时间:
2014-09-16 20:23:11
阅读次数:
187
Java虚拟机如何把编译好的.class文件加载到虚拟机里面?加载之后如何初始化类?静态类变量和实例类变量的初始化过程是否相同,分别是如何初始化的呢?这篇文章就是解决上面3个问题的。若有不正之处,请多多谅解并欢迎各位能够给予批评指正,提前谢谢各位了。 1.Java虚拟机加载.class过程虚拟机把C...
分类:
编程语言 时间:
2014-09-16 15:46:30
阅读次数:
328
1. 对于类的成员变量,不管程序有没有显式的进行初始化,Java虚拟机都会先自动给它初始化为默认值。默认值如下: Boolean false Char '\u0000'(null) byte (byte)0 short (short)0 int 0 long 0L float 0.0f doubl....
分类:
编程语言 时间:
2014-09-16 15:37:00
阅读次数:
191
由于反射涉及动态解析的类型,某些Java虚拟机的优化不能被执行,所以导致了一定的性能的问题,特别是在JDK6以前特别严重,有时甚至达到数百倍,但是在JDK6以后,据说性能差别就不是哪么大了,JDK对此做了优化。但是总还是有那么数10倍的性能差异,那我们就让他跑得再快点吧。
分类:
编程语言 时间:
2014-09-16 08:05:20
阅读次数:
230
在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被...
分类:
编程语言 时间:
2014-09-16 05:59:40
阅读次数:
210
我使用的JDK版本是1.6.0_37版本,操作系统是windows xp,今天想使用下%JAVA_HOME%/bin/目录下的一些管理工具,结果遇到麻烦了。使用JPS命令,无法列出本地运行的java虚拟机;使用jvisualvm,提示"无法检测到本地java应用程序"。
这个问题的原因可以看下:http://docs.oracle.com/javase/1.5.0/docs/guide/mana...
分类:
编程语言 时间:
2014-09-15 22:53:39
阅读次数:
1334
转载出处:http://blog.csdn.net/wind5shy/article/details/8349559模型JVM运行时数据区域JVM执行Java程序的过程中,会使用到各种数据区域,这些区域有各自的用途、创建和销毁时间。根据《Java虚拟机规范(第二版)》(下文称VM Spec)的规定,...
分类:
其他好文 时间:
2014-09-15 19:05:39
阅读次数:
360
Java是一种面向对象的语言。Java虚拟机让该语言拥有了一次编译,多平台运行的超强适应能力,垃圾收集机制,让计算机的内存得到了更充分的利用。这样一种吸收了C/C++语言精华,去其槽粕的语言,怎么能不让大众喜欢呢?...
分类:
编程语言 时间:
2014-09-14 22:13:07
阅读次数:
231
-------android培训、java培训、期待与您交流! ----------1.java api System.getProperties()方法该方法返回一个Properties对象,这个对象里存储的是java虚拟机启动时系统的基本资料,如操作系统类型(windows、linux..),系...
分类:
其他好文 时间:
2014-09-14 17:55:57
阅读次数:
236