1、类的加载、连接和初始化
类初始化通常包括加载、连接、初始化三个步骤。
(1)进程的结束
每当运行一个java程序时,将会启动一个java虚拟机进程,不管程序多么复杂,有多少线程,都在这个java虚拟机进程里。以下四种情况会使得该进程被终止——
程序运行到最后正常结束;
程序里遭遇了System.exit(),或者是Runtime.getRunTime().exit(...
分类:
编程语言 时间:
2014-06-16 14:33:56
阅读次数:
274
Java在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途、创建和销毁的时间,有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁,有些则是与线程一一对应,随线程的开始和结束而创建和销毁。Java虚拟机所管理的内存将会包括以下几个运行时数据区域程序计数器(P...
分类:
编程语言 时间:
2014-06-15 21:28:37
阅读次数:
329
Android核心库包含了Java编程语言核心库所提供的大部分功能。
每个Android应用程序都运行在它自己的进程中,每个进程都拥有自己的Dalvik虚拟机实例。Dalvik被设计成在一个设备上能有效运行多个虚拟机实例的Java虚拟机。在Dalvik可执行(.dex)格式中Dalvik虚拟机可执行文件对内存的需求被优化到最小。这个虚拟机是基于寄存器的,并且运行被Java语言编译器编译的类,...
分类:
移动开发 时间:
2014-06-15 20:11:09
阅读次数:
423
首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域
方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域,叫做方法区。
常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息。
堆区:用于存放类的对象实例。
栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量、方法...
分类:
编程语言 时间:
2014-06-14 00:36:36
阅读次数:
357
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java
JVM有关内存方面的知识进行详细介绍。一、Java JVM内存介绍JVM管理两种类型的内存,堆和非堆。按照官方的说法:“Ja...
分类:
其他好文 时间:
2014-06-13 06:24:42
阅读次数:
288
Jar包的反编译:
Java的世界是透明的,当编译java程序的时候,是将java源文件à.class文件,java虚拟机去执行这些字节码从而得到运行java程序的目的。那么从.class文件能不能得到java源文件呢?答案是肯定的!现在就为大家推荐一款神器jd-gui.exe,界面如下图:
它能将.class文件转成java文件,就能看到源代码了!想copy代码的、想汉化的、想盗版的、想...
分类:
移动开发 时间:
2014-06-10 18:30:39
阅读次数:
246
加载JDBC驱动程序提供JDBC连接的URL 创建数据库的连接 创建一个Statement
执行SQL语句处理结果关闭JDBC对象加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(St...
分类:
数据库 时间:
2014-06-09 13:43:19
阅读次数:
463
c#和java中有自己主动垃圾回收机制,.net执行时和java虚拟机能够管理分配的堆内存,在对象失去引用时自己主动回收,因此在c#和jva中,内存管理不是大问题。c++语言没有垃圾回收机制,必须自己去释放分配的堆内存,否则就会内存泄露。
我相信大部分c++开发者都遇到过内存泄露的问题,而查找内存....
分类:
编程语言 时间:
2014-06-09 00:44:19
阅读次数:
329
最常用的是这么几项:
1. 增大java虚拟机内存(使用64位操作系统、64位高版本jre)
在catalina.sh中增加
JAVA_OPTS=‘-Xms –Xmx’
中间无空格,如:
JAVA_OPTS='-Xms4096m–Xmx8192m'
表示初始化内存为4G,可以使用的最大内存为8G。注意有的系统建议这两个值相同,有的系统建议初始化内存不要太大,具...
分类:
其他好文 时间:
2014-06-08 10:51:33
阅读次数:
193
Android内存限制
java虚拟机有内存使用上限的限制
adb shell进入手机,这此参数被纪录在/system/build.prop中,如果想直接查看可以使用adb shell getprop
单个应用程序最大内存限制,超过这个值会产生OOM
dalvik.vm.heapgrowthlimit
应用启动后分配的初始内存
dalvik.vm.heapsta...
分类:
移动开发 时间:
2014-06-08 03:42:55
阅读次数:
417