Java内存释放心得
1 如果一块内存区域能够重复利用,最好不要申请新的。这个内存区域有可能是系统的一个类,自己的一个内部有数组元素,或者能够放大量数据的结构。
2 最好不要在循环里面申请内存,循环越大,越坏事。换句话说,申请内存频率别太高。好比一个人每顿吃两碗饭正好,身体的消化系统可以承受,如果让他一顿把十顿的都吃掉,不胀死才怪!
3 让每个实例对象的生命周期尽量短一些,尤其是那些要占用大内存的。因为垃圾收集器的算法优先考虑那些生命周期短的。和多任务操作系统调度进程,分配cpu的原理类似。
4 对一块大的内存的引用层次不要弄得太复杂,垃圾收集器对这种类型的内存快收集起来,也是比较麻木的。
5 养成好习惯,不用的对象显式设置成null。在希望收集层次比较复杂的对象的时候,先将该对象内部保存的其他引用都置null了,效果会好一些。
6 最后一招,使用弱引用,虚引用。不过,一般出了内存问题,都是前5条做得不好,需要用到6的少之又少。
相关文档:
自定义异常 : 步骤:
一:创建一个类继承于Throwable或其子类;
二:添加构造方法;
三:在一个方法中使用throw抛出异常
四:在另一个方法中捕获并处理异常
示例:
一、 继承Throwable 类
public class MySecondException extends Throwable {
public MySecondException() {
s ......
1.基本概念的理解
绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:\xyz\test.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。
相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Ser ......
细节上需要改进。
import java.util.*;
public class Map {
Vector<int[]> v = new Vector<int[]>();
Vector<Integer> vv = new Vector<Integer>();
Map() {
int[] array = { 1, 2, 3, 4, 5 };
Scanner s = new Scanner(System.in);
int x = s.nextInt();
pro(array, 0, x);
for(int i=0 ......
1)DOM(JAXP Crimson解析器)
DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找
特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被 ......